繁体   English   中英

Asp.Net临时文件的ApplicationPoolIdentity权限

[英]ApplicationPoolIdentity permissions on Temporary Asp.Net files

在工作中,我遇到以下问题:我们有一个在Windows Server 2008 64位计算机上运行的Web应用程序。 该应用程序的ApplicationPool在ApplicationPoolIdentity下运行,并配置为.net 2和经典管道模式。

在XmlSerialization要求创建Serializer程序集的时候,这种方法可以正常工作,在该程序集中,使用MEF创建了已知类型的集合。

为了解决这个问题,我希望向ASP.Net临时文件目录授予ApplicationPoolIdentity权限就足够了,但是可惜...

我所做的是从cmd提示符下运行以下命令:

icacls "c:\windows\microsoft.net\framework64\v2.0.50727\Temporary ASP.NET Files" /grant "IIS AppPool\MyAppPool":(M)

显然这是行不通的,否则您将不会阅读此内容:)

奇怪的是,每当我授予用户或更具体的身份时,身份验证的用户组就可以使用这些权限。 在我看来,奇怪的是,在我开始授予访问权限之前,ApplicationPoolIdentity已经是IIS_IUSRS的成员,而IIS_IUSRS确实具有对临时asp文件目录的修改权限。

现在,我想知道为什么这种情况需要Authenticated Users组的Modify权限。 我以为是因为apppool帐户缺少其他权限(为此搜索返回了一些结果,所以我尝试了这些结果),但是向Windows \\ Temp目录和/或应用程序目录本身授予ApplicationPoolIdentity修改权限并不能解决问题。

现在,我们有一个解决方法,但是我讨厌我不知道这里到底发生了什么,所以我希望大家能对此有所了解。

提前感谢!

如果应用程序池作为AppPool身份运行,则应立即使用,因为工作进程将被注入IIS_IUSRS SID,该ID具有正确的写权限。

我的猜测是,该应用程序必须使用Windows身份验证,并且已在ASP.NET中启用了模拟功能,以便可能以发出请求的特定用户身份运行代码,而不必使用进程标识。

我猜对了该应用程序正在运行Windows身份验证吗? 并且在asp.net中启用了模拟功能?

可能与您不相关-但是,如果您以用户身份运行应用程序池,则规则会在启动时自动将IIS_IUSRS令牌注入到进程中而更改。 最近,当移至.net 4时,我们陷入困境,并且没有新的Temporary ASP.net Files目录的权限。

解决方法请参见此处: http : //www.yusufozturk.info/iis7/asp-net-write-access-error-on-iis7-5.html

暂无
暂无

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

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