在IIS7以前的IIS版本中有一个本地帐号,是在安装时创建的,叫做 IUSR_MachineName。一旦启用匿名身份认证,这个IUSR_MachineName帐号就是IIS默认使用的身份(identity),它 同时在FTP和HTTP服务中使用。另外还有一个叫做IIS_WPG的组,它是所有应用程序池帐号的容器。在IIS安装期间,必须保证所有的系统可用资源 已经为IIS_WPG设置了适当的权限,当管理员创建一个新的应用程序池帐号时,只需要把新帐号(身份)加入这个组即可。

这个模型运转 得很好,但是和其他任何设计一样,它们有他们的缺点,主要的缺点是IUSR_MachineName帐号和IIS_WPG组对于创建它们的系统来说都是本 地的。 Windows中的每个帐号或组都有一个唯一的号码叫做SID(安全识别号Security Identifiers),这样就可以区别于其它的帐号或组。

而在IIS 7.0中:

1. IUSR内建帐号替代了IUSR_MachineName帐号
2. IIS_IUSRS内建组替代了IIS_WPG组

因为IUSR是一个内建帐号,它不再需要密码。逻辑上你可以认为它就是NETWORKSERVICE或LOCALSERVICE帐号。


用程序池(w3wp.exe工作进程)是以我们指定的用户身份运行的,IIS需要使用这个用户身份访问各种系统资源和网络资源,如访问磁盘资源、执行某些
系统功能、访问寄存器,以及访问网络资源等。IIS默认的用户身份是Network
Service账号,这个账号对Web服务器和网络只有有限的访问权限,但是在运行标准Web网站时具有完全的权限。

IIS 7.0为用户提供了3种内置的账号,此外,我们还可以创建自定义账号。内置的账号包括:Network Service,Local Service ,Local System

  1. 应用程序池的默认用户是内置的Network Service账号。Network Service账号对本地计算机和网络资源只拥有最小访问权限。
  2. 内置的Local Service账号无法像Network Service账号那样访问网络资源,但是具有与Network Service账号类似的本地资源访问权限。

  3. 置的Local System账号具有对本地系统的完全访问权限。但是,当我们使用Local
    System账号时,务必加以小心,尽可能地避免使用这个账号。当一个未授权的用户浏览服务器中的某个网站时,或者当这个未授权的用户上传自己的内容时,
    如果应用程序池以Local System账号身份运行,那么这个用户可以在Web服务器中执行任何操作。

需要使用应用程序池身份访问一个网络资源--如果需要访问一个网络资源,那么可以创建一个自定义的域用户,并将应用程序池的用户标识指派为这个自定义用户。这样一来,如果以这个应用程序池的用户标识运行的程序需要访问一个网络资源,那么,程序将使用这个自定义用户身份访问网络资源。

为每个网站新建一个应用程序池是一种合理的部署方式,特别是如果需要在一台服务器中运行多个Web网站时,这种做法尤其有益。这样可以确保每个Web应用程序仅在自己的进程中运行,这样,如果一个应用程序发生失效,那么也不会对其他网站造成影响。
应用程序池必须能够时常地回收使用,这样才能够解决应用程序挂起的问题,此外,这样还可以在添加新的文件、同时IIS无法知道已经添加了新文件的情况下,重新加载一个网站。

IIS7内建账号,应用程序池的更多相关文章

  1. Python3 内建模块 hashlib、itertools、HTMLParser、urllib

    Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制 ...

  2. mongodb内建角色

    MongoDB内建角色 数据库用户角色:read.readWrite; 数据库管理角色:dbAdmin.dbOwner.userAdmin: 集群管理角色:clusterAdmin.clusterMa ...

  3. (73)zabbix用户认证方式 内建、HTTP Basic、LDAP

    公司大大小小众多系统,不同系统不同的账号密码,管理上相当复杂,后来慢慢出现了SSO等账号统一验证,其他zabbix也提供了类似的方法,或许有些公司便可以使用公司提供的账号来登录zabbix了. zab ...

  4. Bash shell的内建命令:type

    type指令是用来观察指令时来自于外部指令还是内建在bash中的指令. type  [-tpa]  name 选项与参数: :不加任何选项与参数时,type会显示出name是外部指令还是bash内建指 ...

  5. Bash Shell内建命令和保留字

    Bash Shell内建命令和保留字命令含义!保留字,逻辑非:不做任何事,只做参数展开.读取文件并在shell中执行它alias设置命令或命令行别名bg将作业置于后台运行bind将关键字序列与read ...

  6. Python内建的对象列表

    Python内建的对象列表 刚写Python肯定会遇到这样的情况,想写些什么,但又不知从何写起... 在我看来问题在于我们不知道有什么东东可以拿来玩,这里列出Python的内建对象,稍微归类了一下,多 ...

  7. javascript 对象初探 (四)--- 内建对象之旅之Array

     我们不要去纠结神马是内建对象,神马是內建构造器.到后来你们便会发现其实她们都是对象. Array()是一个构建数组的內建构造器函数: var arr = new Array(); 与下面的是等效的: ...

  8. javascript内建对象

    内建对象等价于内建构造器内建对象大致分为三类:数据封装类对象--Object.Array.Boolean.Number和String工具类对象--Math.Date.RegExp等用于提供遍历的对象错 ...

  9. RealtekRTL8111内建网卡-黑苹果之路

    真是服了这神一样的黑苹果.好不容易配好显卡,登陆appstore却报“无法验证您的设备或电脑”,查了一圈,又说要配网卡为en0的,有说要在clover中配FIXLAN的,最准确的是网卡必须是内建(Bu ...

随机推荐

  1. 自定义配置文件的使用(web.config/app.config)

    以下非原创作品,但都是自己看过理解并写过,记录下来,以便之后项目的使用或其它用途. (1)只需要简单配置单一属性值: <configuration> <configSections& ...

  2. JqMobi学习

    JqMobi+phonegap+html5 开发Android.ios应用

  3. 控制台下的计算器——C++实现

    最近这段时间看操作系统的东西看的头晕脑胀的,所以先停个一晚上,写个控制台下的计算器,来练练栈的使用. 首先,分析一下要完成的东西.输入肯定使用string类来输入的,然后第一步,就是把string的字 ...

  4. php simple_html_dom 一个iconv错误引起解析中断的问题,貌似内存溢出

    环境: $pageNum = 8; for ($i = 1; $i < $pageNum; $i++) { $html = new simple_html_dom(); $host = 'htt ...

  5. EassyMock实践 捕获参数

    在测试接口过程中,有时我们希望知道自己期望传入的参数是什么,以此来判断传入参数的正确行,这时就需要用到EassyMock的capture方法.该方法能捕获传入的参数存放到自定义的变量中,然后用捕获的参 ...

  6. QQ在线咨询状态显示不出来怎么办?http://bizapp.qq.com/webpres.htm

  7. scanf和gets的区别

    scanf和gets获取字符串时的区别  在C语言中,能构获取字符串的函数至少有两个:  1.scanf()   所在头文件:stdio.h  语法:scanf("格式控制字符串" ...

  8. cocos2d-x -------之笔记篇 环境的安装

    cocos2d-x -------之笔记篇 环境的安装 使用到的工具有VS2010  cygwin android-NDK eclipse android SDK 1.首先是android相关环境的安 ...

  9. 详述USB OTG发展及协议标准

    USB On-The-Go 扩大了USB 的应用领域,将USB 从传统的PC 与外设通讯的模式,扩展到移动电子和嵌入式领域中,抛开主机PC,实现通常的外设与外设之间点对点(Point to Point ...

  10. poj2141---字符串转换

    #include <stdio.h> #include <stdlib.h> int main() { ]; char tmp; scanf("%s",ke ...