web-dev-qa-db-fra.com

Obtenez par programmation l'identité du pool d'applications

Comment obtenir par programmation l'identité d'un pool d'applications en C #? Je veux que l'utilisateur du pool d'applications et PAS l'utilisateur actuellement connecté.

33
p0enkie

Vous pouvez utiliser System.Security.Principal.WindowsIdentity.GetCurrent().Name pour identifier l'identité dans laquelle l'application actuelle s'exécute. Ce lien fournit un utilitaire Nice qui affiche l'identité sous laquelle l'aspx est exécuté.

47
adt

Vous devez faire référence à Microsoft.Web.Administration (dans Microsoft.Web.Administration.dll). Microsoft.Web.Administration.dll se trouve dans 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;            
}
7
Donal