C#でプログラムでappPoolのIDを取得するにはどうすればよいですか?現在ログインしているユーザーではなく、アプリケーションプールユーザーが必要です。
System.Security.Principal.WindowsIdentity.GetCurrent().Name
を使用して、現在のアプリケーションが実行されているIDを識別できます。 このリンク は、aspxが実行されるIDを表示するNiceユーティリティを提供します。
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;
}