2012-04-11 15 views

Respuesta

33

Puede usar System.Security.Principal.WindowsIdentity.GetCurrent().Name para identificar la identidad en la que se está ejecutando la aplicación actual. This link proporciona una buena utilidad que muestra la identidad bajo la cual se ejecuta el aspx.

+0

Si cambio de la identidad apppool en el Administrador de IIS no debe System.Security.Principal.WindowsIdentity.GetCurrent(). Nombre obtener el valor cambiado? – p0enkie

+6

Ok, para alguien que pueda tener problemas, este es el código que utilicé para obtener el nombre de usuario que inició el AppPool (su identidad): ApplicationPool pool = serverManager.ApplicationPools ["YoutAppPoolName"]; pool.ProcessModel.IdentityType = ProcessModelIdentityType.SpecificUser; cadena user = pool.ProcessModel.UserName; – p0enkie

+1

@ p0enkie ¿Qué es 'serverManager'? – Kiquenet

2

Debe hacer una referencia a Microsoft.Web.Administration (en Microsoft.Web.Administration.dll). Microsoft.Web.Administration.dll se encuentra en C: \ Windows \ System32 \ inetsrv.

//Add this to your using statements: 
using Microsoft.Web.Administration; 

//You can get the App Pool identity like this:  
public string GetAppPoolIdentity(string appPoolName) 
{ 
    var serverManager = new ServerManager(); 

    ApplicationPool appPool = serverManager.ApplicationPools[appPoolName]; 
    appPool.ProcessModel.IdentityType = ProcessModelIdentityType.SpecificUser; 
    return appPool.ProcessModel.UserName;    
} 
Cuestiones relacionadas