[英]Why setting app pool identity as Network Service for asp.net web application?
[英]ASP.NET web service using IUSR, not Application Pool Identity
这个问题似乎与此类似: IIS站点未使用在应用程序池IIS 7 +中指定的身份。但是,那里没有答案。
底部有一个tl; dr。
请记住,我不是设置服务器的人,因此他们可能已经更改了一些我不知道的设置。
我们有一个在IIS 7上运行的ASP.NET Web服务。该Web服务设置为使用DefaultAppPool,而应用程序池的Identity设置为域用户(假设它是“ localdomain \\ user1”)。
Web服务无法保存到某个网络文件夹,因此我们授予了localdomain \\ user1对该文件夹的读/写权限。 但是,它仍然无法保存在那里。
我无法进行远程调试,并且它在我自己的计算机上运行良好(可能是因为它在Visual Studio的IIS Express中运行,并且我的用户确实具有访问权限),因此我尝试更改Web服务,以便错误消息中包含用户名它正在运行。
如果我使用Environment.UserName
来获取它,则结果为“ IUSR”。 如果我使用System.Security.Principal.WindowsIdentity.GetCurrent().Name
,它将返回“ NT AUTHORITY \\ IUSR”。
除非上述方法不可靠,否则该Web服务似乎在默认用户(IUSR)下运行,而不是在其应用程序池中的一个下运行。 我不知道为什么,有人可以解释吗?
编辑:服务器上的任务管理器,如果我使用RDP登录,则表明w3wp.exe进程正在由user1运行。 我不确定该相信哪一个。
谢谢。
tl; dr :Web服务的应用程序池设置为域用户,但是无论如何它似乎都在IUSR下运行。 我该如何预防?
假冒是问题所在。 我不知道这是Web服务的web.config中的设置。
将<identity impersonate="true"/>
更改为<identity impersonate="false"/>
,使其可以作为localdomain \\ user1运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.