我正在使用 this模拟类模拟域帐户以访问网络共享,如下所示:
using(new Impersonartor(username, domain, password))
{
//Code Here
}
从网络共享复制文件没问题:
using(new Impersonartor(username, domain, password))
{
CopyAll(uncPath, localPath)
}
但是,使用 Process.Start 在资源管理器中查看 UNC 共享会抛出“登录失败:未知用户名或错误密码”:
using(new Impersonartor(username, domain, password))
{
Process.Start(uncPath)
}
怀疑是 Impersonator 类有问题,我尝试手动向 ProcessStartInfo 提供凭据,如下所示:
System.Diagnostics.ProcessStartInfo viewDir = new System.Diagnostics.ProcessStartInfo(uncPath);
viewDir.UseShellExecute = false;
viewDir.Domain = netCred.Domain;
viewDir.UserName = netCred.UserName;
viewDir.Password = ConvertToSecureString(netCred.Password);
System.Diagnostics.Process.Start(viewDir);
还是不开心。请注意,我确定我的 netCred (NetworkCredential) 是正确的,因为我以前曾与经过身份验证的资源建立连接。
那么,如何使用网络凭据在资源管理器中查看 UNC 路径?
最佳答案
我今天遇到了同样的问题,以下是对我有用的方法:
private void OpenNetworkPath(string uncPath)
{
System.Diagnostics.Process.Start("explorer.exe", uncPath);
}
关于c# - 使用网络凭据通过 Process.Start(path) 访问网络共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4132035/