我在用 模仿域帐户的模仿类别以访问网络共享类似:

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);

仍然没有快乐。请注意,我确定我的网络(网络限制)是正确的,因为我用来与身份验证的资源建立先前的联系。

那么,如何使用网络凭据查看Explorer中的UNC路径?

有帮助吗?

解决方案

我今天遇到了同样的问题,这对我有用:

private void OpenNetworkPath(string uncPath)
{
   System.Diagnostics.Process.Start("explorer.exe", uncPath);
}

其他提示

而不是将解体传递给 Process.Start, ,尝试在 Process.Start 并通过undpath作为 ProcessStartInfo' Arguments 财产。

System.Diagnostics.ProcessStartInfo viewDir = new System.Diagnostics.ProcessStartInfo("explorer.exe");
viewDir.UseShellExecute = false;
viewDir.Domain = netCred.Domain;
viewDir.UserName = netCred.UserName;
viewDir.Password = ConvertToSecureString(netCred.Password);
viewDir.Arguments = uncPath;
System.Diagnostics.Process.Start(viewDir);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top