通过的Process.Start(路径)访问网络共享,我使用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)
}
怀疑该模仿类是有过错的,我试过手动提供凭据的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路径?
对不起,我忘了提,我已经试过了。谢谢! – Ian 2010-11-09 09:52:16
嗨@Ian,我试着创建一个非常基本的程序来测试代码,它似乎加载正常。我认为这个问题与您的环境有关,您能否提供有关您的操作系统/版本/整体域设置的更多详细信息,以及网络凭证是否存储在本地客户端操作系统保险库中? – 2010-11-09 10:11:23
当然。 Windows 7专业版32位。机器未加入域。 NetworkCredentials对象在运行时被填充。 netcred对象正在用于连接到不同的网络服务,如TFS(正常工作)。该凭证不存储在OS保管库中。 – Ian 2010-11-09 10:37:26