繁体   English   中英

如何发现运行ASP.Net应用程序的IIS帐户?

[英]How do I discover the IIS account under which an ASP.Net application is running?

我需要确保在C#(.Net 4.6.2)ASP.Net应用程序启动时,它的根文件夹中有一个本地文件夹,它可以向其中写入临时数据。 如果文件夹不存在,我可以让应用程序创建该文件夹,但是如何确定应用程序安装在哪个IIS帐户下呢? (我对此无能为力,并希望确保只有该帐户才具有必要的权限)。 通常,这将是应用程序池标识,但有时不是。

TIA

与IIS中一样,有几种不同的方法来获取进程正在运行的身份(帐户)。 最简单的可能是Request.ServerVariables() https://msdn.microsoft.com/zh-CN/library/ms524602.aspx

//I think this is the one you are asking about
Request.ServerVariables("APP_POOL_ID");
//if your request is not anonymous
Request.ServerVariables("LOGON_USER");
Request.ServerVariables("REMOTE_USER");

否则,如果您使用经过身份验证的(非匿名)asp.net页,则可以从System.Security.Principal.WindowsIdentity.GetCurrent获得更多信息。

System.Security.Principal.WindowsIdentity wi;
wi = System.Security.Principal.WindowsIdentity.GetCurrent();
var sid = wi.User.Value;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM