IIS7.5 – 应用程序池帐户与用户帐户 – 哪个帐户需要写入权限?

所以我知道在这个问题上的变化已经被问了很多次了,但是我仍然感到困惑,所以我希望尽可能简单地问一下,希望你能够尽可能简单地回答。

在IIS7.5中,我有一个以“NetworkService”的应用程序池标识运行的网站。 匿名用户总是作为IUSR运行。

当一个匿名用户打开我的网页,并试图触发一个操作,将信息写入文件,是NetworkService,需要对文件夹的写权限,或者是IUSR?

从逻辑上理解,如果应用程序以NetworkService的forms运行并且应用程序正在尝试写入文件,则理解起来会非常棘手,那么应用程序帐户应该是具有权限的应用程序帐户。 但是,这似乎使用户身份冗余。 那么我的应用程序是作为用户还是作为应用程序进行身份validation?

这取决于您是否使用ASP.NET进行模拟(或者不使用模拟ASP.NET,或者根本没有ASP.NET)。
模仿导致.NET代码与访问用户的安全上下文(如果他们是匿名的,IUSR,如果不是 – 他们自己的帐户)执行。 这是一个安全问题,几乎没有什么用处,但是很多经验不足的开发人员/pipe理员却是这样做的,因为它似乎魔法地解决了“拒绝访问”的问题。

如果您没有启用模拟(对您有好处!),则安全上下文是应用程序池中的一个。

如果您不相信我,您可以select一个文件并更改其权限,以允许单个用户(例如IUSR)进行写入/修改,然后查看您的站点是否可以现在修改它。