Mam problem z uruchamianiem procesów w kontekście personifikowanym w ASP.NET 2.0.Rozpoczęcie procesu i podszywanie się pod numer
Zaczynam nowy proces w moim kodzie serwisowym. 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" to aplikacja konsoli zawierające następujący kod:
static void Main(string[] args)
{
Console.WriteLine("Windows: " + WindowsIdentity.GetCurrent().Name);
}
Kiedy wywołać usługę internetową bez personifikacji, wszystko działa bez zarzutu.
Po włączeniu personifikacji, następujący błąd jest napisane w "błędów" w kodzie zmienna usług Web:
Unhandled Wyjątek: System.Security.SecurityException. Odmowa dostępu \ r \ n \ r \ n na System.Security.Principal.WindowsIdentity.GetCurrentInternal (TokenAccessLevels desiredAccess, Boolean threadOnly) \ r \ n w System.Security.Principal.WindowsIdentity.GetCurrent() \ r \ n at ObfuscatedMdc.Program.Main (String [] args) \ r \ nFirma złożenia, która się nie powiodła: \ r \ nMyComputer
Podszywany użytkownik jest lokalnym administratorem i ma dostęp do pliku wykonywalnego C: \ KB \ GetWindowUser.exe.
Kiedy okno użytkownikowi wyraźnie określić we właściwościach ProcesStartInfo domeny, użytkownika i hasło, mam następujący komunikat: http://img201.imageshack.us/img201/5870/pstartah8.jpg
Czy to możliwe, aby rozpocząć proces z różnych poświadczeń niż ASPNET z ASP.NET (IIS 5.1)?
żadnego ostatecznego rozwiązania z pełnym przykładowy kod źródłowy działa na ten temat? – Kiquenet