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

当连接到当前用户(在本例中为启用网络的服务用户)没有权限的网络共享时,必须提供名称和密码。

我知道如何使用Win32函数(WNet*来自的家族mpr.dll)来执行此操作,但想使用.Net(2.0)功能来执行此操作。

有哪些选项可用?

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

回答:

您可以更改线程身份,或P

/调用WNetAddConnection2。我更喜欢后者,因为有时我需要为不同的位置维护多个凭据。我将其包装到IDisposable中,然后调用WNetCancelConnection2以删除凭据(避免出现多个用户名错误):

using (new NetworkConnection(@"\\server\read", readCredentials))

using (new NetworkConnection(@"\\server2\write", writeCredentials)) {

File.Copy(@"\\server\read\file", @"\\server2\write\file");

}

以上是 连接到网络共享时如何提供用户名和密码 的全部内容, 来源链接: utcz.com/qa/434467.html

回到顶部