我应该将哪一个用于“匿名用户身份”? “特定用户:IUSR”或“应用程序池标识”?

时间:2011-02-02 01:09:43

标签: asp.net iis

在IIS管理器中心窗格中,有一个标题为“身份验证”的图标,如下所示:

enter image description here

点击图标,我们得到3项如下:

enter image description here

右键点击Anonymous Authentication并选择edit,我们有:

enter image description here

问题:我应该使用哪一个?有什么区别?

4 个答案:

答案 0 :(得分:2)

您基本上选择的是匿名用户的身份。您可以选择特定用户,也可以选择应用程序池的标识。使用哪一个取决于您的应用程序。如果您的应用程序需要特定的用户权限或访问权限,那么您可以选择该用户,否则可以使用应用程序池用户。在不知道你的应用程序是什么的情况下,很难以这种或那种方式引导你。

答案 1 :(得分:2)

“应用程序池的标识是运行应用程序池的工作进程的帐户的名称。默认情况下,应用程序池在具有低级别用户访问权限的网络服务帐户下运行。” 特定用户是您可以自行设置的用户,用于指定服务器在用户访问您的站点时将模拟的帐户。我会选择IUSR并为该帐户提供必要的权限。

app pool id

答案 2 :(得分:2)

这个建议通常适用于IIS6,但我认为这同样适用于IIS7。

IIS用于处理入站请求的进程由操作系统启动,并作为IUSR_MachineName运行。这是一个非常低权限的帐户,基本上无法做任何事情。然后,您的请求将传递给.Net,它作为应用程序池中的另一个进程(IIS6上的W3WP)运行。应用程序池具有已分配的标识,默认情况下为networkservice,这是一个合理的特权帐户,它可以进行网络连接,而其他内置帐户则无法进行。您可以将应用程序池的标识更改为任何帐户,但您选择的帐户将需要某些操作系统权限。

这对你意味着什么?除非你有一些不可改变的要求,否则使用NetworkService。您是否需要以特定用户身份阅读文件?忽略IUSR帐户。这是低权限的方式,除非你真的想要锁定你的服务器,但要准备好大量的摆弄以使其正常工作。

西蒙

答案 3 :(得分:1)

IIS 7及更高版本中基本上有3个位置可以管理运行您网站的用户

应用池高级设置

Application pool Advanced settings

您将在IIS管理器顶部的应用程序池配置区域中找到,然后选择您正在使用的应用程序池,然后单击“操作”窗格上的“高级设置”。

这是启动运行每个应用程序的w3wp.exe进程的用户。一般来说,这是我建议每个人配置他们的用户并留在那里的地方。如果使用ASP.net Impersonation以外的任何其他内容,则在Trusted / Windows身份验证下连接时,此用户将连接到SQL Server。

“连接为”用户

"Connect As" user

通过选择站点或应用程序,然后单击“操作”窗格中的“基本设置”,可以找到此选项。它也可以在您创建网站时使用。

这是仅用于连接存储站点的文件的用户。例如,如果您将它们保存在单独的网络共享上,并且需要提供登录才能访问它。

匿名用户

这是提问者询问的用户。请注意它在功能窗格的IIS部分中的位置。这是IIS将传递给应用程序的用户。如果您正在使用匿名身份验证,那么您可能正在使用单独的机制来处理登录(如果有的话)。

仅在一个例子中,我甚至尝试改变这一点,我认为这是一个PHP应用程序使用URL重写重定向到图像文件并返回401 Unauthorized。