我刚搬到远离IIS6在Win2003的到IIS8在Win2012托管ASP.NET应用程序。
在我的应用程序一个特定的文件夹,我需要创建和删除文件。 将文件复制到新的服务器后,我不断看到下面的错误,当我试图删除文件:
访问路径 'd:\网站已\ myapp.co.uk \ companydata \ filename.pdf' 被拒绝。
当我检查IIS我看到该应用程序的默认应用帐户下运行,但是,我从来没有设置Windows权限,这个文件夹包括IIS应用程序池\默认应用
相反,停止尖叫客户授予我的文件夹具有以下权限:
IUSR
IIS_IUSRS
这似乎已经奏效,但我担心的是太多的特权已设置。 我在网上读到IUSR是否确实需要在所有在这里相互矛盾的信息。 任何人都可以澄清哪些用户/权限就足以在此文件夹中创建和删除文件吗? 另外,是IIS_IUSRS组的IUSR一部分?
更新及解决方案
请参阅我的回答如下 。 我不得不遗憾的是这样做,因为最近的一些建议,并没有经过深思熟虑的,甚至是安全的(IMO)。
我不想发表我自己的答案,但一些答案最近我忽略了张贴在我自己的问题,这表明只不过是短期蛮干的办法解决。
总之- 你并不需要在所有编辑任何Windows用户帐户权限 。 所以只有这样做带来风险。 该方法是在IIS中使用继承权限完全管理。
申请修改/写权限, 正确的用户帐户
当它出现在站点列表下,右键单击域,然后选择编辑权限
在安全选项卡,你会看到MACHINE_NAME\IIS_IUSRS
上市。 这意味着,IIS自动具有只读的目录权限(例如,在网站上运行ASP.Net)。 你并不需要编辑此条目 。
单击编辑按钮,然后添加...
在文本框中,键入IIS AppPool\MyApplicationPoolName
,替换MyApplicationPoolName
与您的域名,如IIS AppPool\mydomain.com
按检查姓名按钮。 您输入的字符将变换(注意下划线)文字:
按OK添加用户
选择新用户(您的域名),现在你可以放心地提供任何修改或写入权限
IUSR是IIS_IUSER的一部分group.so我想你可以删除权限IUSR不用担心。 延伸阅读
然而,一个问题出现了随着时间的推移,随着越来越多的Windows系统服务开始为NETWORKSERVICE运行。 这是因为运行的NETWORKSERVICE服务,可以与在相同的身份运行其他服务乱动。 因为IIS工作进程默认情况下(传统的ASP,ASP.NET,PHP代码)运行第三方代码,是时候从其他Windows系统服务隔离IIS工作进程,并在独特的身份运行IIS工作进程。 Windows操作系统提供了一个名为“虚拟账户”功能,允许IIS为它的每一个应用程序池的创建独特的身份。 默认应用是分配给您创建的所有应用程序池的默认池。
为了使它更安全,您可以更改IIS默认应用身份到ApplicationPoolIdentity。
关于许可,创建和删除总结了可以给予的一切权利。 所以,无论你已分配给IIS_USERS组,他们将需要。 仅此而已,无所不及。
希望这可以帮助。
当我添加IIS_IUSRS许可站点文件夹 - 资源,如js和css,仍然是不可访问(错误401,禁止)。 然而,当我加入IUSR - 它成为确定。 所以,可以肯定的:“你无法删除IUSR权限,而不必担心”,亲爱的@Travis g ^ @
@EvilDr您可以将AD环境中创建IUSR_ [符]帐户,并让该下IUSR_ [符]帐户运行特定应用程序池:
“应用程序池”>“高级设置”>“身份”>“自定义帐户”
你的网站设置为“一个应用的用户(通过身份验证)”,而不是“特定用户”,在高级设置。
现在请即IUSR_ [标识符]上的文件和文件夹中的适当的NTFS权限,例如:上companydata修改。
IIS_IUSRS组只有如果您使用ApplicationPool身份突出。 即使你有这个组看起来在运行时为空IIS添加到此组根据微软的文学运行工作进程。
我会用特定的用户(而不是应用的用户)。 然后,我将能够在应用程序模拟。 一旦你这样做,无论帐户设置为特定的用户,这些凭证将用于访问本地资源服务器上(不适用于外部资源)。
特定用户指定特别是指用于访问本地资源。
IIS_IUser权限是绰绰有余创建或删除文件的更多。 无需IUSER许可。 我给这个权限超过20个文件夹。 我寻找的也是这样做的另一种方法。 我建议,如果任何选项可用