Evi*_*lDr 134 iis permissions asp.net-4.5 iis-8 windows-server-2012
我刚刚从Win2003上的IIS6迁移到Win2012上的IIS8,用于托管ASP.NET应用程序.
在我的应用程序的一个特定文件夹中,我需要创建和删除文件.将文件复制到新服务器后,当我尝试删除文件时,我一直看到以下错误:
访问路径'D:\ WebSites\myapp.co.uk\companydata\filename.pdf'被拒绝.
当我检查IIS时,我看到应用程序在DefaultAppPool帐户下运行,但是,我从未在此文件夹上设置Windows权限以包含IIS AppPool\DefaultAppPool
相反,为了停止尖叫客户,我在该文件夹上授予了以下权限:
IUSR
IIS_IUSRS
这似乎有效,但我担心已经设置了太多的权限.我在网上阅读了有关IUSR是否真的需要的相互矛盾的信息.任何人都可以澄清哪些用户/权限足以创建和删除此文件夹上的文档吗?此外,IUSR是IIS_IUSRS组的一部分吗?
请参阅下面的答案.我不得不遗憾地做到这一点,因为最近的一些建议没有经过深思熟虑,甚至是安全的(IMO).
Evi*_*lDr 141
我讨厌发表自己的答案,但最近有些答案忽略了我在自己的问题中发布的解决方案,提出的方法简直就是蛮干.
简而言之 - 您根本不需要编辑任何Windows用户帐户权限.这样做只会带来风险.使用继承的权限在IIS中完全管理该过程.
右键单击"站点"列表下显示的域,然后选择" 编辑权限"
在" 安全"选项卡下,您将看到MACHINE_NAME\IIS_IUSRS列出的内容.这意味着IIS自动拥有该目录的只读权限(例如,在站点中运行ASP.Net). 您无需编辑此条目.
单击编辑按钮,然后单击添加...
在文本框中,键入IIS AppPool\MyApplicationPoolName,替换MyApplicationPoolName为您的域名,例如IIS AppPool\mydomain.com
按" 检查名称"按钮.您键入的文本将转换(注意下划线):
按" 确定"添加用户
选择新用户(您的域)后,您现在可以安全地提供任何修改或写入权限
Tra*_*s G 49
IUSR是IIS_IUSER组的一部分.所以我猜你可以删除IUSR的权限而不用担心.进一步阅读
但是,随着越来越多的Windows系统服务开始作为NETWORKSERVICE运行,随着时间的推移出现了一个问题.这是因为作为NETWORKSERVICE运行的服务可以篡改以相同标识运行的其他服务.由于IIS工作进程默认运行第三方代码(Classic ASP,ASP.NET,PHP代码),因此是时候将IIS工作进程与其他Windows系统服务隔离开来,并在唯一标识下运行IIS工作进程.Windows操作系统提供了一个名为"虚拟帐户"的功能,允许IIS为每个应用程序池创建唯一标识.DefaultAppPool是默认池,分配给您创建的所有应用程序池.
为了使其更安全,您可以将IIS DefaultAppPool标识更改为ApplicationPoolIdentity.
关于权限,"创建"和"删除"总结了可以给出的所有权限.因此,无论您分配给IIS_USERS组,他们都需要.没有更多,没有更少.
希望这可以帮助.
当我向站点文件夹添加IIS_IUSRS权限时 - 资源(如js和css)仍然无法访问(错误401,禁止).但是,当我添加IUSR时 - 它变好了.所以肯定"你不能在不担心的情况下删除IUSR的权限",亲爱的@Travis G @
小智 5
@EvilDr您可以在AD环境中创建一个IUSR_[identifier]帐户,并让特定的应用程序池在该IUSR_[identifier]帐户下运行:
“应用程序池”>“高级设置”>“身份”>“自定义帐户”
在高级设置中将您的网站设置为“应用程序用户(直通身份验证)”而不是“特定用户”。
现在,为 IUSR_[标识符] 授予对文件和文件夹适当的 NTFS 权限,例如:修改公司数据。
| 归档时间: |
|
| 查看次数: |
354477 次 |
| 最近记录: |