【发布时间】:2015-04-06 01:29:47
【问题描述】:
我有一个 web api 控制器,我需要获取在 IIS 中托管 web 应用程序的应用程序池的标识。
我试过了
string threadName = System.Threading.Thread.CurrentPrincipal.Identity.Name;
string username = this.User.Identity.Name;
但是两者都是空的。我想要运行 w3wp.exe 的名称,例如 IIS APPPOOL\DefaultAppPool 或 NETWORKSERVICE 或应用程序池配置为运行的任何名称。
在 VS2013 中创建新的 Wep Api 项目时使用默认的 authentication=none 进行了尝试,还尝试了 Forms auth,但没有成功。
【问题讨论】:
-
使用 IIS API 来获取它,因为 user.Identity.Name 和线程主体将为空,除非有人登录到会话中,或者如果明确设置了身份并且加载用户配置文件在应用程序池。 msdn.microsoft.com/en-us/library/aa347649%28v=vs.90%29.aspx
标签: c# asp.net iis asp.net-web-api