У меня проблема с запуском процессов в олицетворенном контексте в 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: \ КБ \ GetWindowUser.exe" консольное приложение, содержащее следующий код:
static void Main(string[] args)
{
Console.WriteLine("Windows: " + WindowsIdentity.GetCurrent().Name);
}
Когда я призываю веб-сервис без олицетворения, все работает отлично.
При включении олицетворения, следующее сообщение об ошибке записывается в «ошибки» переменной в коде веб-службы:
Необработанное исключение: System.Security.SecurityException:. Отказано в доступе \ г \ п \ г \ п в System.Security.Principal.WindowsIdentity.GetCurrentInternal (TokenAccessLevels wishAccess, Boolean threadOnly) \ r \ n в System.Security.Principal.WindowsIdentity.GetCurrent() \ r \ n в 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)?
любое окончательное решение с полным образец исходного кода работает по этому поводу? – Kiquenet 2013-07-05 06:34:55