Inicio del proceso y suplantación
Tengo problemas para iniciar procesos en contexto suplantado en ASP.NET 2.0.,
Estoy comenzando un nuevo proceso en mi código de servicio web. 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();
}
El "C: \ KB \ GetWindowUser.exe" es una aplicación de consola que contiene el siguiente código:
static void Main(string[] args)
{
Console.WriteLine("Windows: " + WindowsIdentity.GetCurrent().Name);
}
Cuando invoco el servicio web sin suplantación, todo funciona bien.
Cuando enciendo la suplantación, el siguiente error se escribe en la variable "errores" en el código del servicio web:
Excepción no controlada: System.Security.SecurityException: acceso denegado. \ R \ n \ r \ n en System.Security.Principal.WindowsIdentity.GetCurrentInternal (TokenAccessLevels deseadoAccess, Boolean threadOnly) \ r \ n en System.Security.Principal.WindowsIdentity .GetCurrent () \ r \ n en ObfuscatedMdc.Program.Main (String [] args) \ r \ nLa zona del ensamblado que falló fue: \ r \ nMyComputer
El usuario suplantado es el administrador local y tiene acceso al ejecutable C: \ KB \ GetWindowUser.exe.
Cuando especifico el usuario de la ventana explícitamente en las propiedades ProcesStartInfo Dominio, Usuario y Contraseña, recibí el siguiente mensaje:http://img201.imageshack.us/img201/5870/pstartah8.jpg
¿Es posible iniciar el proceso con credenciales diferentes a ASPNET de asp.net (IIS 5.1)?