私はこのImpersonatorクラスを使用して、ドメインアカウントを偽装し、次のようにネットワーク共有にアクセスしています。
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パスを表示するにはどうすればよいですか?