概述
 
在早期的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用户组,管理应用程序池标识就变得简单多了,至少你不需要再为不同程序池下的站点设置不同的程序池标识用户权限。
 
原文地址:

【转】IUSR和IIS_IUSRS的更多相关文章

  1. IUSR和IIS_IUSRS

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

  2. 常见.NET功能代码汇总

    1,在Web上修改指定文件位置的Web.config 这里需要使用 WebConfigurationManager 类,但必须使用WebConfigurationFileMap类来指定文件位置,看代码 ...

  3. IIS报500.0错误

    IIS安全里面配置:Everyone.IUSR.IIS_IUSRS 参考地址:http://blog.chinaunix.net/uid-21375345-id-3213631.html

  4. win2008 服务器文件夹权限配置

    通过控制文件夹权限来提高站点的安全性. 这一篇权限设置包括二个方面,一个是系统目录.盘符的权限,一个是应用程序的上传文件夹权限设置. 系统目录 确保所有盘符都是NTFS格式,如果不是,可以用命令 co ...

  5. Win7下VS2010、IIS7配置常见问题收集

    一 在Win7下应按什么次序安装vs2010和iis7 win7推荐先安装iis7,再安装vs2010:如果次序反了,必须注册iis才可以用. IIS中ASP.NET的版本号此时可选的有1.1.2.0 ...

  6. IIS发布asp.net mvc项目(asp.net core也是一样)

    因为之前都是利用其他的工具在linux上面进行发布,导致现在忘记了在IIS上面怎么发布,现在就记录下来,以防不时之需吧 第一步: 在vs里面进行项目发布:指定好发布的位置,点击发布就好了 第二步:右击 ...

  7. 解决win10下IIS下"对路径...的访问被拒绝

    解决方案如下: 1.右击文件夹,安全,添加IUSR和IIS_IUSRS安全控制权限. 2.右击文件夹,常规,查看是否只读.将只读属性去掉.

  8. 安装Discuz

    1.下载Discuz 版本文件 http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip 2.下载PHP http://window ...

  9. [数据库]SQL Server 用户NT AUTHORITY\IUSR 登录失败

    今天打开网站时,突然报这个错误,平时都好好的 Cannot open database "JMECC" requested by the login. The login fail ...

随机推荐

  1. Python面试题之Super函数

    这是个高大上的函数,在python装13手册里面介绍过多使用可显得自己是高手 23333. 但其实他还是很重要的. 简单说, super函数是调用下一个父类(超类)并返回该父类实例的方法. 这里的下一 ...

  2. jQuery图片放大预览

    在线演示 本地下载

  3. Go语言学习之运算符(The way to go)

    生命不止,继续go go go 今天介绍go中的运算符. 运算符大概分为: Arithmetic Operators Relational Operators Logical Operators Bi ...

  4. Kotlin 取 MAC 地址

    package com.example.ybs.myapplication import android.annotation.SuppressLint import android.net.wifi ...

  5. Web Service和Servlet的区别

    没接触过web service今天看了一篇文章转过来. 在最开始学习Web Service时候,总觉得Web Service和Servlet没有什么区别,觉得Servlet可以对Http请求进行相应并 ...

  6. scala学习手记13 - 类继承

    在scala里,类继承有两点限制: 重写方法需要使用override关键字: 只有主构造函数才能往父类构造函数中传参数. 在java1.5中引入了override注解,但不强制使用.不过在scala中 ...

  7. mybatis报错 Error instantiating interface com.atguigu.mybatis.dao.DepartmentMapper with invalid types () or values ()

    mybatis报错 Error instantiating interface com.atguigu.mybatis.dao.DepartmentMapper with invalid types ...

  8. 配置mybatis-config.xml出现过很诡异的现象

    1 首先得保证包的导入正确 2 然后如果把mybatis-config.xml放在src的某个文件夹下,最后能够build path 3 之后一直报 Archive for required libr ...

  9. Pycharm for mac 快捷键

    cmd b 跳转到声明处(cmd加鼠标) opt + 空格 显示符号代码 (esc退出窗口 回车进入代码) cmd []光标之前/后的位置 opt + F7 find usage cmd backsp ...

  10. Robot Framework(一)

    一. 定义 Robot Framework是一款python编写的功能自动化测试框架,具有良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行 二. Robot ...