代码之家  ›  专栏  ›  技术社区  ›  Ravisha

打开/浏览受密码保护的映射网络驱动器

  •  0
  • Ravisha  · 技术社区  · 15 年前

    我想从C代码打开一个映射的网络驱动器,但它受密码保护,所以当我试图直接打开它时,会引发一个异常。有人能在打开这个驱动器时轻描淡写地提供用户名和密码吗?异常详细信息:

    at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
    at System.Diagnostics.Process.Start()
    at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
    at System.Diagnostics.Process.Start(String fileName)
    

    我只是打电话来 System.Diagnostics.Process.Start("Z:")

    2 回复  |  直到 12 年前
        1
  •  2
  •   Rox    15 年前

    Z:不是文件名。[编辑:如果它不受密码保护,可以,尝试执行您的代码,但它起作用]

    尝试使用 ProcessStartInfo 对象作为参数,因为它允许设置用户名和密码。

    关于文件名参数 here :

    文件名是任何应用程序或文档。文档被定义为与之关联的打开或默认操作的任何文件类型。您可以使用操作系统提供的“文件夹选项”对话框来查看已注册的文件类型及其关联的应用程序。“高级”按钮将指向一个对话框,该对话框显示是否存在与特定注册文件类型关联的打开操作。

        2
  •  0
  •   Community CDub    8 年前

    也许您可以考虑打开“z驱动器”的UNC路径 意味 指出提示:PC用户可以断开Z:并用他们想要的任何路径替换它…

    还不完全清楚“直接启动”和“打开这个驱动器”是什么意思,但是如果正如代码截图所示,您试图启动驱动器文件夹的资源管理器,那么您可以使用 ProcessStartInfo 作为提供凭证的机制。

    如果您试图以编程方式访问该共享上的文件,那么您可能会使用 模仿 在不同的凭证下运行文件访问代码块。这个 Accessing a Shared File (UNC) From a Remote, Non-Trusted Domain With Credentials 看起来特别有前途。

    如果您试图使用预先指定的凭据实际创建网络驱动器,那么这里还有另一个解决方案- https://serverfault.com/questions/47005/specifying-username-pass-as-part-of-a-unc-path-or-map-network-drives-for-a-window/47008#47008 (之后别忘了断开)。