p0enkie
p0enkie

Reputation: 693

Get the Application Pool Identity programmatically

How do I get the identity of an appPool programmatically in C#? I want the application pool user and NOT the user who is currently logged in.

Upvotes: 42

Views: 46216

Answers (3)

Vanquished Wombat
Vanquished Wombat

Reputation: 9525

Another possibility that seems to work OK for me and does not require installation of the Microsoft.Web.Administration package and its legion dependencies:

string appPoolUserIdentity = WindowsIdentity.GetCurrent().Name;

From forums.asp.net

Upvotes: 4

Donal
Donal

Reputation: 32713

You need to make a reference to Microsoft.Web.Administration (in Microsoft.Web.Administration.dll). Microsoft.Web.Administration.dll is located in 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;            
}

Upvotes: 9

adt
adt

Reputation: 4350

You could use System.Security.Principal.WindowsIdentity.GetCurrent().Name to identify the Identity in which the current application is running. This link provides a nice utility which displays the identity under which the aspx is run.

Upvotes: 63

Related Questions