这是IIS 7.5和ASP.NET的一个问题,我一直在研究和获取无处可去。任何帮助将不胜感激。IIS AppPoolIdentity和文件系统写入权限
我的问题是:在IIS 7.5中使用ASP.NET时,IIS和/或操作系统在充分信任下运行时如何允许Web应用程序写入像C:\dump
这样的文件夹?它是如何不必为应用程序池用户明确添加写访问权限的(在本例中为ApplicationPoolIdentity
)?
这一点我知道:
- 在IIS 7.5中,应用程序池的默认身份是
ApplicationPoolIdentity
。 ApplicationPoolIdentity
代表所谓的“IIS APPPOOL \ AppPoolName”的Windows用户帐户,在创建应用程序池,其中AppPoolName是应用程序池的名称时创建的。- “IIS APPPOOL \ AppPoolName”用户默认为
IIS_IUSRS
组的成员。 - 如果你是在完全信任运行Web应用程序可以写入到文件系统的许多地区(不包括文件夹一样
C:\Users
,C:\Windows
等)。例如,您的应用程序将有权写入某些文件夹,例如C:\dump
。 - 默认情况下,
IIS_IUSRS
组没有给出读取或写入访问C:\dump
(至少不能访问可见通过在Windows资源管理器的“安全”选项卡)。 - 如果您拒绝对
IIS_IUSRS
的写入访问权限,则在尝试写入文件夹时(如预期的那样),您将收到SecurityException。
因此,考虑到所有这些因素,如何授予“IIS APPPOOL \ AppPoolName”用户的写权限? w3wp.exe进程以该用户身份运行,因此允许此用户写入文件夹似乎没有显式访问权限?
请注意,我理解这可能是做了方便起见,因为它是授予它需要写如果你是在完全信任运行的每一个文件夹的用户访问一个痛。如果您想限制此访问权限,则可以始终在中信任下运行该应用程序。我有兴趣了解操作系统和/或IIS允许这些写入发生的方式,即使似乎没有授予明确的文件系统访问权限。
@Kev [+1]我张贴的应用程序池标识regardin NTFS权限类似的问题在这里:http://stackoverflow.com/questions/11232675/applications-apppool-permisions-on-parent-site-文件夹结构 - 如果你看一看,我将不胜感激。 – 2012-06-27 19:09:06
@ one.beat.consumer - 抱歉,我从未看到您的评论。你仍然坚持这个问题? – Kev 2012-09-19 03:10:27
@Kev - 是的,它已经不再成为一个问题了,因为我已经被撇到其他废话,但它仍然没有解决。有什么想法吗? – 2012-09-20 17:15:29