连接到网络共享时如何提供用户名和密码
当连接到当前用户(在本例中为启用网络的服务用户)没有权限的网络共享时,必须提供名称和密码。
我知道如何使用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