IIS匿名身份validation帐户与应用程序池帐户

有人可以解释我用这两个账户吗?

我知道应用程序池帐户控制适用于网站.NET代码的权限。

如果这个帐户没有对目录的写权限,那么你就不能创build文件。

但是,还有一个帐户IISUSR是匿名身份validation的帐户。

这个帐户与.NET代码和访问网站有什么关系?

为什么我们需要2个账户?

IIS_Anonymous帐户是访问该网站的用户所运行的帐户。 所以你要确保这个用户不能访问web根目录以外的任何文件和带有敏感信息的文件,IE的sql连接string等等。你通常不想让这个用户在任何地方写权限。

应用程序池帐户是您的应用程序(或IIS服务器)运行的帐户。 您希望为此帐户提供运行脚本所需的最低访问权限。 如果您有安全意识,您将为每个站点创build不同的应用程序池,以便一个站点上的安全configuration错误不会泄漏到另一个站点。

在这里有一个类似的问题在Serverfault:

了解IUSR_帐户

我写了:

大多数人很难理解IIS匿名用户(IUSR _…)和执行二进制文件(应用程序池帐户)的帐户之间的区别。

当用户未在服务器上进行身份validation时使用IUSR帐户 ,对于“正常”网站 – 默认使用情况。 对于Intranet站点,您可以禁用对IIS服务器的匿名访问,并让用户(自动)提交他们的networking/域凭证。

匿名帐户对文件和文件夹的权限决定了普通networking用户可以在该服务器上访问哪些资源(文件)。 通常所有(静态)文件都是只读的,并且不允许列出文件夹内容。

应用程序池标识 (例如networking服务帐户)是不同的。 这是执行脚本或程序集的帐户,即进程标识。 例如,如果您的应用程序想要写入某个文件夹(例如C:\ temp),则该帐户必须具有文件系统权限才能修改该文件夹中的文件。