web-dev-qa-db-ja.com

プログラムでアプリケーションプールIDを取得する

C#でプログラムでappPoolのIDを取得するにはどうすればよいですか?現在ログインしているユーザーではなく、アプリケーションプールユーザーが必要です。

33
p0enkie

System.Security.Principal.WindowsIdentity.GetCurrent().Nameを使用して、現在のアプリケーションが実行されているIDを識別できます。 このリンク は、aspxが実行されるIDを表示するNiceユーティリティを提供します。

47
adt

Microsoft.Web.Administration(Microsoft.Web.Administration.dll内)への参照を作成する必要があります。 Microsoft.Web.Administration.dllは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