【问题标题】:Open/browse a password protected mapped network drive打开/浏览受密码保护的映射网络驱动器
【发布时间】:2010-06-15 06:19:59
【问题描述】:

我想从 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:")

【问题讨论】:

  • @Reddog。为什么你觉得它是一个恶作剧查询?这是问题中添加的真正问题@fredrik 堆栈跟踪
  • 双关语,不是恶作剧。要求我们“阐明”为什么会发生异常......
  • 现在您正在制作一些 PUn/PJ。请再次阅读问题在评论之前仔细阅读问题

标签: c# .net windows network-drive


【解决方案1】:

Z: 不是文件名。 [编辑:如果它没有密码保护也没关系,尝试执行你的代码并且它有效]

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

关于 here 的 FileName 参数:

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

【讨论】:

  • 不正确!如果您尝试访问 ex d: 的任何其他文件夹,它工作得非常好。这个 process.start() 就像命令行执行 start 命令一样
  • 请看我添加的关于 FileName 参数的内容
  • 感谢 Rox,这正是我想要的。
【解决方案2】:

也许您可能会考虑改为打开“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(之后不要忘记断开它)。

【讨论】:

    猜你喜欢
    • 2013-06-14
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 2012-01-20
    相关资源
    最近更新 更多