Tengo un problema con los procesos de inicio en contexto suplantado en ASP.NET 2.0.Inicio y suplantación de proceso
Estoy comenzando un proceso nuevo 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();
}
La "C: \ KB \ GetWindowUser.exe" es una aplicación de consola que contiene el código siguiente:
static void Main(string[] args)
{
Console.WriteLine("Windows: " + WindowsIdentity.GetCurrent().Name);
}
Cuando invoco servicio web sin suplantación, todo funciona bien.
Cuando enciendo la suplantación, el error siguiente se escribe en "errores" variable en el código de servicio web:
Excepción no controlada: System.Security.SecurityException:. Acceso denegado \ r \ n \ r \ n en System.Security.Principal.WindowsIdentity.GetCurrentInternal (TokenAccessLevels desiredAccess, 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 de usuario de manera explícita en la ventana propiedades ProcesStartInfo de dominio, usuario y contraseña, me siguiente mensaje: http://img201.imageshack.us/img201/5870/pstartah8.jpg
¿Es posible iniciar el proceso con unas credenciales distintas ASPNET de asp.net (IIS 5.1)?
cualquier solución final con plena muestra de código fuente de trabajo al respecto? – Kiquenet