我该使用哪种“匿名用户身份”?“特定用户:IUSR”还是“应用程序池身份”?

4
在IIS管理器的中心窗格中,有一个名为“身份验证”的图标,如下所示: enter image description here 点击该图标后,我们会得到以下3个选项: enter image description here 右键单击“匿名身份验证”并选择“编辑”,我们会看到以下内容: enter image description here 问题:我应该使用哪一个?它们之间有什么区别?
4个回答

3

您基本上是在选择匿名用户的身份。您可以选择特定的用户,也可以选择应用程序池的身份。选择哪一个取决于您的应用程序。如果您的应用程序需要特定用户的权限或访问权限,则可以选择该用户,否则使用应用程序池用户即可。不知道您的应用程序具体功能,很难给出明确建议。


请解释得更详细一些,我仍然不清楚它们所依赖的东西。 - LaTeX

2
应用程序池的身份是应用程序池工作进程运行的帐户名称。默认情况下,应用程序池在Network Service帐户下运行,该帐户具有低级用户访问权限。

特定用户是您可以自己设置的用户,用于指定在用户访问您的站点时服务器将模拟哪个帐户。我建议使用IUSR并为该帐户授予必要的权限。

应用程序池ID

2

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

IIS用于处理传入请求的进程由操作系统启动并作为IUSR_MachineName运行。这是一个非常低权限的帐户,基本上什么也做不了。然后你的请求被传递给.Net,在一个应用程序池中作为另一个进程运行(在IIS6上为W3WP)。应用程序池有一个分配的标识,默认为networkservice,这是一个相当有特权的帐户,例如它可以建立网络连接,而其他内置帐户不能。你可以将应用程序池的标识更改为任何帐户,但你选择的帐户将需要某些操作系统特权。

所有这些对你意味着什么?嗯,除非你有一些无法更改的要求,否则使用NetworkService。你需要像特定用户一样读取文件吗?忽略IUSR帐户。它的权限太低,除非你真的想锁定你的服务器,但准备好大量的调试工作来让它正常工作。

Simon


1
在IIS 7及以上版本中,基本上有三个地方管理运行您网站的用户。 应用程序池高级设置

Application pool Advanced settings

在IIS管理器的应用程序池配置区域顶部,您会发现所使用的应用程序池,然后单击“操作”窗格上的“高级设置”。这是启动运行每个应用程序的w3wp.exe进程的用户。通常建议大家在此处配置其用户并保持不变。如果未使用ASP.NET模拟登录,则此用户将作为受信任/Windows身份验证连接到SQL Server时所连接的用户。
“连接为”用户。

"Connect As" user

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

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

匿名用户

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

我只尝试过一次更改它,我认为那是一个使用URL重写重定向到图像文件并返回401未经授权的PHP应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接