如何在 C# 中以编程方式获取 appPool 的标识?我想要应用程序池用户而不是当前登录的用户。
问问题
40177 次
3 回答
54
您可以使用System.Security.Principal.WindowsIdentity.GetCurrent().Name
来标识当前应用程序正在其中运行的身份。此链接提供了一个很好的实用程序,它显示了运行 aspx 的身份。
于 2012-04-11T07:07:42.407 回答
8
您需要参考 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;
}
于 2017-08-30T10:55:24.163 回答
1
另一种对我来说似乎可以正常工作并且不需要安装 Microsoft.Web.Administration 包及其军团依赖项的可能性:
string appPoolUserIdentity = WindowsIdentity.GetCurrent().Name;
于 2020-07-08T12:58:35.483 回答