Запуск процесса и олицетворение
У меня проблема с запуском процессов в олицетворенном контексте в ASP.NET 2.0.,
Я запускаю новый процесс в своем коде веб-службы. IIS 5.1, .NET 2.0
[WebMethod]
public string HelloWorld()
{
string path = @"C:\KB\GetWindowUser.exe";
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WorkingDirectory = Path.GetDirectoryName(path);
startInfo.FileName = path;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;
startInfo.ErrorDialog = false;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
Process docCreateProcess = Process.Start(startInfo);
string errors = docCreateProcess.StandardError.ReadToEnd();
string output = docCreateProcess.StandardOutput.ReadToEnd();
}
«C: \ KB \ GetWindowUser.exe» - консольное приложение, содержащее следующий код:
static void Main(string[] args)
{
Console.WriteLine("Windows: " + WindowsIdentity.GetCurrent().Name);
}
Когда я вызываю веб-сервис без подражания, все работает нормально.
Когда я включаю олицетворение, следующая ошибка записывается в переменную «errors» в коде веб-сервиса:
Необработанное исключение: System.Security.SecurityException: доступ запрещен. \ R \ n \ r \ n для System.Security.Principal.WindowsIdentity.GetCurrentInternal (TokenAccessLevels requiredAccess, Boolean threadOnly) \ r \ n в System.Security.Principal.WindowsI .GetCurrent () \ r \ n at ObfuscatedMdc.Program.Main (String [] args) \ r \ nЗона сбойной сборки: \ r \ nMyComputer
Олицетворенный пользователь является локальным администратором и имеет доступ к исполняемому файлу C: \ KB \ GetWindowUser.exe.
Когда я явно указываю пользователя окна в свойствах ProcesStartInfo Домен, Пользователь и Пароль, я получаю следующее сообщение:http://img201.imageshack.us/img201/5870/pstartah8.jpg
Можно ли запустить процесс с учетными данными, отличными от ASPNET из asp.net (IIS 5.1)?