如何在C#中以编程方式获取appPool的身份?我想要应用程序池用户而不是当前登录的用户。
答案 0 :(得分:44)
您可以使用System.Security.Principal.WindowsIdentity.GetCurrent().Name
来标识当前应用程序正在运行的标识。 This link提供了一个很好的实用程序,它显示了运行aspx的标识。
答案 1 :(得分:6)
您需要引用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;
}
答案 2 :(得分:0)
对我来说似乎可行的另一种可能性是,它不需要安装Microsoft.Web.Administration程序包及其相关组件:
string appPoolUserIdentity = WindowsIdentity.GetCurrent().Name;