IUSR和IIS_IUSRS之间有什么区别?

摘要:在早期的 IIS 版本中,随着 IIS 的安装,系统会创建一个 IUSR_MachineName 用户。IIS 启用匿名访问,就是通过此用户进行身份认证的,包括 FTP 匿名访问,HTTP 匿名访问。

概述

在早期的 IIS 版本中,随着 IIS 的安装,系统会创建一个 IUSR_MachineName 用户。IIS 启用匿名访问,就是通过此用户进行身份认证的,包括 FTP 匿名访问,HTTP 匿名访问。

在创建 IUSR_MachineName 用户的同时,IIS_WPG 用户组也会被创建出来。此用户组是一个包含所有预定义应用程序池标识用户的容器,在安装 IIS 的时候,系统里所有 IIS 需要用到的资源都被授予 IIS_WPG 用户组适当的权限。

因此,当管理员为应用程序池标识为一个新创建的用户时,只需将该用户加入 IIS_WPG 用户组,即可保证应用程序池正常工作。

在这样的架构下,IIS 可以很好地工作,但也有其不足之处:IUSR_MachineName 用户和 IIS_WPG 用户组都是本地系统里的用户(组),同系统中的其他用户(组)一样,都有各自的唯一安全标识符 SID。

IIS 的配置文件 metabase.xml 有调用 IUSR_MachineName 用户,由于此用户在其他计算机上有着不同的 SID 及名称,所以当我们把 metabase.xml 复制到其他计算机上时,IIS 将无法正常工作。

另外,也正是由于 SID 的缘故,我们无法将 IUSR_MachineName 用户相关的 ACL 成功复制到其他计算机上,IIS_WPG 用户组也一样。

IIS 7 成功解决了这两个问题,IIS 7 的内置用户(组)突破了 SID 的限制,因为 IIS7 在调用这些内置用户(组)时,使用的是用户名而非 SID。

而且在不同语言版本的系统中,IIS 7 的内置用户(组)都是 IUSR(IIS_IUSRS)。其中,IUSR 用于取代 IUSR_MachineName,IIS_IUSRS 用于取代 IIS_WPG。

由于 IUSR 属于内置用户,所以使用时,不需要输入密码。你可以把它理解为 NETWORK SERVICE 或 LOCAL SERVICE 一类的用户。下面具体讲一下 IUSR 和 IIS_IUSRS。

IUSR

在IIS 7中,IUSR 用户取代了 IUSR_MachineName 用户。IUSR 在认证时不需要密码。IIS 7 的匿名身份认证,就是通过此用户进行的。打开IIS 7 配置文件 applicationHost.config ,可以看到这样一段设置:

<anonymousAuthentication enabled="true" userName="IUSR" defaultLogonDomain="" />

这表明 IIS 7是通过 IUSR 来实现所有的匿名访问。这样一来,你就可以:

  • 通过 Explorer 或 cmd 来设置 IUSR 的权限;
  • 不用担心 IUSR 密码过期的问题;
  • 将 IUSR 相关的 ACL 无缝迁移至其他计算机上。

当然,我们也可以将 IIS 7 的匿名身份标识为成其他用户:

  • 1、打开 IIS Manager,双击你想要设置的站点。
  • 2、在功能视图中,双击身份验证。
  • 3、选择匿名身份验证,点击编辑。
  • 4、点击特定用户,设置。
  • 5、输入该用户的用户名密码,确定。

IIS_IUSRS

IIS_IUSRS 用户组取代了 IIS_WPG 用户组。此内置用户组拥有应用程序池访问系统资源所需的足够权限。因此,任何加入此用户组的用户,都可以成为一个合格的应用程序池标识用户。

和 IUSR 用户一样,IIS_IUSRS 用户组也可以实现不同计算机之间的ACL复制。

当 IIS 启动工作进程时,需要用户来标识进程,而 IIS_IUSRS 用户组成员 ApplicationPoolIdentity 就是默认的标识。

ApplicationPoolIdentity 并不是指一个用户,而是所有程序池默认标识用户的统称。这些用户与程序池是一一对应的。例如,程序池 DefaultAppPool 的 ApplicationPoolIdentity 是用 IISAPPPOOL\DefaultAppPool。

因此,有了 IIS_IUSRS 用户组,管理应用程序池标识就变得简单多了,至少你不需要再为不同程序池下的站点设置不同的程序池标识用户权限。

版权声明:本文为博主原创文章,未经博主允许不得转载。http://www.dedenotes.com/html/iis-iusrs.html
(1)
打赏 微信扫一扫 微信 支付宝 QQ 扫码打赏

防止表单重复提交的 4 种方法

Dedenotes 赞(3)

平时开发的项目中可能会出现下面这些情况:由于用户误操作,多次点击表单提交按钮;由于网速等原因造成页面卡顿,用户重复刷新提交页面;黑客或恶意用户使用 Postman 等工具重复恶意提交表单(攻击网站)。

HTTP消息结构 HTTP请求报文和响应报文的格式

Dedenotes 赞(3)

HTTP 协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,基于 TCP/IP 通信协议来传递数据(HTML 文件, 图片文件, 查询结果等),所有的 WWW(World Wide Web)文件都必须遵守这个标准。

meta

Dedenotes 赞(3)

meta 是 html 语言 head 区的一个辅助性标签,位于文档的头部,不包含任何内容,标签的属性定义了与文档相关联的名称/值对。meta 标签可提供相关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。