Я использую этот класс Impersonator для олицетворения учетной записи домена для доступа к сетевому ресурсу следующим образом:
using(new Impersonartor(username, domain, password))
{
//Code Here
}
Копирование файла с сетевого ресурса работает нормально:
using(new Impersonartor(username, domain, password))
{
CopyAll(uncPath, localPath)
}
Однако при использовании Process.Start для просмотра общего ресурса UNC в Explorer выдается «Ошибка входа: неизвестное имя пользователя или неверный пароль»:
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 в проводнике с использованием сетевых учетных данных?