如何在连接到网络共享时提供用户名和密码

如何在连接到网络共享时提供用户名和密码

当连接到当前用户(在我的例子中,网络启用的服务用户)没有权限、名称和密码的网络共享时。

我知道如何使用Win 32函数(WNet*家里人mpr.dll),但希望使用.NET(2.0)功能来完成。

有什么可供选择的?

也许更多的信息有助于:

  • 用例是Windows服务,而不是ASP.NET应用程序。
  • 该服务在一个没有共享权限的帐户下运行。
  • 客户端不知道共享所需的用户帐户。
  • 客户端和服务器不是同一域的成员。


偶然的你
浏览 1601回答 3
3回答

慕村225694

您可以更改线程标识,也可以更改P/Invoke WNetAddConnection 2。我更喜欢后者,因为我有时需要为不同的地点维护多个凭据。我将它封装到一个IDisposable中,然后调用WNetCancelConnection 2以删除cred(避免多个用户名错误):using (new NetworkConnection(@"\\server\read", readCredentials)) using (new NetworkConnection(@"\\server2\write", writeCredentials)) {    File.Copy(@"\\server\read\file", @"\\server2\write\file"); }
打开App,查看更多内容
随时随地看视频慕课网APP