在Windows Server 2008下使用ASP.NET 4.0安装了大量相关的用户帐户,我不知道哪个是哪个,它们有什么区别,哪个才是我的应用程序真正运行的帐户.以下是一份 list :

  • IIS_IUSRS
  • IUSR
  • DefaultAppPool
  • ASP.NETV4.0
  • 网络服务
  • 本地服务.

什么是什么?

推荐答案

这是一个非常好的问题,遗憾的是,许多开发人员没有问足够多关于IIS/ASP的问题.NET安全性,作为一名web开发人员和设置IIS.所以这是....

要涵盖列出的身份,请执行以下操作:

100

这与旧的IIS6 IIS_WPG组类似.它是一个内置组,其安全性配置为该组的任何成员都可以充当应用程序池标识.

100

此帐户类似于旧的IUSR_<MACHINE_NAME>本地帐户,该帐户是IIS5和IIS6网站的默认匿名用户(即通过站点属性的"目录安全"选项卡配置的帐户).

有关IIS_IUSRSIUSR的更多信息,请参阅:

Understanding Built-In User and Group Accounts in IIS 7

100

如果应用程序池配置为使用应用程序池标识功能运行,则会动态创建一个名为IIS AppPool\<pool name>的"综合"帐户,用作池标识.在本例中,将为池的生命周期创建一个名为IIS AppPool\DefaultAppPool的综合帐户.如果删除该池,则该帐户将不再存在.对文件和文件夹应用权限时,必须使用IIS AppPool\<pool name>添加这些权限.您也不会在计算机用户管理器中看到这些池帐户.有关更多信息,请参见以下内容:

Application Pool Identities

100-

这将是ASP的应用程序池标识.NETV4.0应用程序池.见上文DefaultAppPool.

100 -

NETWORK SERVICE帐户是Windows 2003上引入的内置身份.NETWORK SERVICE是一个低特权帐户,您可以在该帐户下运行应用程序池和网站.在Windows 2003池中运行的网站仍然可以模拟该网站的匿名帐户(IUSR_u或您配置为匿名身份的任何内容).

在ASP.NET之前,你可以使用ASP.NET执行应用程序池帐户下的请求(通常为NETWORK SERVICE).或者,您可以配置ASP.NET通过web.config文件中的<identity impersonate="true" />设置在本地模拟该网站的匿名帐户(如果该设置被锁定,则需要由machine.config文件中的管理员完成).

设置<identity impersonate="true">在使用共享应用程序池的共享主机环境中是常见的(结合部分信任设置以防止模拟帐户解开).

在IIS7.x/ASP.NET中,模拟控制现在通过站点的身份验证配置功能进行配置.因此,您可以配置为以池标识IUSR或特定的自定义匿名帐户运行.

100

LOCAL SERVICE帐户是服务控制管理器使用的内置帐户.它在本地计算机上具有最低权限集.它的使用范围相当有限:

LocalService Account

100

你没有问这个问题,但我补充说是为了完整性.这是一个本地内置帐户.它拥有相当广泛的特权和信任.永远不要将网站或应用程序池配置为在此身份下运行.

LocalSystem Account

In Practice:

实际上,保护网站安全的首选方法(如果网站拥有自己的应用程序池——这是IIS7 MMC中新网站的默认设置)是在Application Pool Identity以下运行.这意味着在应用程序池的高级设置中将站点的标识设置为Application Pool Identity:

在此处输入图像描述

然后在网站中配置身份验证功能:

在此处输入图像描述

右键单击并编辑匿名身份验证条目:

在此处输入图像描述

确保 Select "Application pool identity":

在此处输入图像描述

当您要应用文件和文件夹权限时,您可以授予应用程序池标识所需的任何权限.例如,如果要为ASP.NET v4.0个池权限授予应用程序池标识,则可以通过资源管理器执行以下操作:

在此处输入图像描述

单击"判断名称"按钮:

在此处输入图像描述

或者,您可以使用ICACLS.EXE实用程序执行此操作:

icacls c:\wwwroot\mysite /grant "IIS AppPool\ASP.NET v4.0":(CI)(OI)(M)

...或如果站点的应用程序池被称为BobsCatPicBlog,那么:

icacls c:\wwwroot\mysite /grant "IIS AppPool\BobsCatPicBlog":(CI)(OI)(M)

我希望这有助于澄清问题.

Update:

我刚刚偶然发现了这个2009年的优秀答案,其中包含了大量有用的信息,非常值得一读:

The difference between the 'Local System' account and the 'Network Service' account?

Asp.net相关问答推荐

502 DotNet WebApplication的网关nginx已损坏

在 Web.Config 的 Location Path 元素中指定多个目录

我应该使用字节还是整数?

将命令行参数传递给 ASP.NET Core 中的 Startup 类

ASP.NET Web 应用程序消息框

如何更改 .ASPX 自动格式化设置 (Visual Studio)

如何将 ASP.NET MVC5 身份验证添加到现有数据库

SimpleMembership 与 ASP.NET MVC 4 中的自定义数据库架构

使用 Asp.Net MVC 和 Web Api 配置 Ninject

svg 无法在 localhost 上的 IIS 网络服务器上运行

如何在 ASP.NET MVC 中设置时区?

要调用此方法,Membership.Provider属性必须是ExtendedMembershipProvider的实例

当.NET抛出WebException((400)错误请求)时如何处理WebResponse?

.NET 4.0 中的自定义 MembershipProvider

调查 Web.Config 重复部分原因的步骤

当用户在文本框中按 Enter 键时执行按钮单击事件

在控制器 asp.net-core 中获取当前区域性

MVC4 - 当优化设置为 true 时Bundle 不起作用

如何修复 ASP.NET 错误文件 'nnn.aspx' 尚未预编译,无法请求.?

如何在不遍历每个循环的情况下从字典对象中获取所有键(仅键)