首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对临时Asp.Net文件的ApplicationPoolIdentity权限

对临时Asp.Net文件的ApplicationPoolIdentity权限
EN

Stack Overflow用户
提问于 2010-06-08 18:36:16
回答 2查看 8.8K关注 0票数 0

在工作中,我遇到以下情况:我们有一个运行在WIndows Server200864位机器上的web应用程序。该应用程序的ApplicationPool在ApplicationPoolIdentity下运行,并配置为.net 2和经典管道模式。

直到XmlSerialization需要创建序列化程序集的时候,这才能很好地工作,其中MEF被用来创建已知类型的集合。

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

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

代码语言:javascript
复制
icacls "c:\windows\microsoft.net\framework64\v2.0.50727\Temporary ASP.NET Files" /grant "IIS AppPool\MyAppPool":(M)

显然这是不起作用的,否则你不会读到这篇文章:)

奇怪的是,每当我向用户授予这些权限,或者更具体地说,授予经过身份验证的用户组的权限时,它都会起作用。同样奇怪的是(在我看来),在我开始授予访问权限之前,ApplicationPoolIdentity已经是IIS_IUSRS的成员了,它确实拥有临时asp文件目录的修改权限。

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

现在我们有了一个变通方法,但我讨厌我不知道到底发生了什么,所以我希望你们中的任何一个人能对此有所了解。

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-15 11:41:28

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

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

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

票数 5
EN

Stack Overflow用户

发布于 2010-06-29 19:52:43

可能与您无关-但如果您以域用户身份运行应用程序池,则在启动时自动将IIS_IUSRS令牌注入进程中时,规则会发生变化。这让我们最近在迁移到.net 4时遇到了麻烦,因为我们对新的临时ASP.net文件目录没有权限。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2996556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档