网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.一些常用的数据操作类.
.asp.net 2.0下一个标准GRIDVIEW功.
.GridViewRow可以任意位置单击引发.
.动态创建MSSQL数据库表存储过程.
.ASP.NET 2.0角色及成员管理 .
.何时.NET中AppDomain会回收? .
.字符自动截取问题.
.ASP.NET 2.0 中使用自定义缓存依.
.ASP.NET 2.0的视图状态持久性机制.
.ASP.NET四种页面导航方式之比较与.
.介绍几个ASP.NET中容易忽略但却很.
.ASP.net 页面被关闭后,服务器端.
.ASP.NET 2.0 正式版中无刷新页面.
.请求网址并解析返回的html.
.开发手记之实现web.config的快速.
.ASP.NET下MVC设计模式的实现.
.如何实现asp.net 2.0的SqlCacheD.
.如何实现无刷新的DropdownList联.
.asp向asp.net应用程序的转变过程.
.解决ASP.NET的进程帐户没有访问 .

理解IIS7的用户和组

发表日期:2006-12-15


原文地址:http://www.iis.net/1026/SinglePageArticle.ashx
翻译:Tony Qu (来自BluePrint翻译团队)

作者:Vikas Malhotra
最后更新时间:2006年9月12日,星期二,上午11:48

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

这个模型运转得很好,但是和其他任何设计一样,它们有他们的缺点,主要的缺点是IUSR_MachineName帐号和IIS_WPG组对于创建它们的系统来说都是本地的。 Windows中的每个帐号或组都有一个唯一的号码叫做SID(安全识别号),这样就可以区别于其它的帐号或组。我们仅使用SID来创建创建ACL。作为以前版本的IIS设计的组成部分,我们将IUSR_MachineName包含在了metabase.xml文件中,如果你尝试从一台机器拷贝metabase.xml到另一台机器上,它并不会马上运转起来,因为另一台机器上的帐号使用的名字是不同的。另外,你不能仅用xcopy /o来拷贝ACL,因为不同机器上的SID也是不同的。一个解决方法是使用域帐号,但是你需要在你的架构中添加一个活动目录。IIS_WPG组也有同样的权限问题,如果你在一个机器的文件系统上为IIS_WPG组设置ACL,使用xcopy /o来拷贝ACL到另一台机器上是无法成功的。IIS了解了这一问题,并通过在IIS7.0中使用内建的帐号和组对其作了改进。

内建的帐号和组是由操作系统保证的,这样就可以保证有一个唯一的SID,IIS甚至做得更好,它保证了新的帐号名称和组名称永远不会被本地化。例如,无论你安装的是那种语言版本的Windows,IIS帐号名称将永远是IUSR,而组名称将永远是IIS_IUSRS。

总的来说,在IIS 7.0中:

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

因为IUSR是一个内建帐号,它不再需要密码。逻辑上你可以认为它就是NETWORKSERVICE或LOCALSERVICE帐号。IUSR帐号和IIS_IUSRS组将在下面的章节中做进一步介绍。

理解新的IUSR帐号
正如上面所说的,在IIS 7.0中IUSR帐号将替代IUSR_MachineName 帐号。仅在安装FTP服务器时,IUSR_MachineName 帐号才会被创建和使用。如果不安装FTP,那么这个帐号将永远不会被创建。

这个内建帐号并不需要密码,当启用匿名身份认证时,该帐号并将被作为默认的用户身份使用。如果你看一看applicationHost.config文件,你会发现下面的定义:
 <anonymousAuthentication enabled="true" userName="IUSR" defaultLogonDomain="" />


这就告诉了IIS对所有的匿名身份认证请求使用新的内建帐号。这样做的最大优点在于,我们现在可以:

* 使用Windows Explorer或许多其他命令行工具为IUSR设置文件系统权限
* 不用再担心这个帐号的密码会过期
* 使用xcopy /o无缝拷贝文件以及它们的所有权和ACL信息到不同的机器上

有一点要重点提一下:IUSR帐号和LOCALSERVICE帐号在方式上很相似,它是在网络上匿名工作。NETWORKSERVICE和LOCALSYSTEM 可以以机器身份工作,但IUSR则不是,因为它是一种特权的升迁。如果你希望有一个拥有网络访问权限的匿名帐号,你就需要创建一个新的用户帐号,并手工设置用户名和密码,就像你以前设置匿名身份验证一样。要在IIS Manager中实现这一点,你可以:

* 点击Start按钮,键入"INetMgr.exe"并按回车(如果弹出提示框,请按Continue来提升权限)
* 点击Connection中机器名称旁边的"+"按钮
* 在IIS Manager中双击你要管理的站点
* 双击Feature Name标题下面的Authentication项
* 选择Anonymous Authentication,点击右侧Task标题下面的Edit,弹出Specify Credentials dialog(指定认证对话框)
* 点击Specific User选项,然后按下"Set"按钮
* 输入想设的用户名和密码,按OK

理解新的IIS_IUSRS组
正如前面所提到的,IIS_IUSRS组是用来替代IIS_WPG组的,它已经拥有了所有的文件和系统资源的访问权限,因此如果一个帐号被添加到该组中,它将以应用程序池身份无缝工作。

由于与内建帐号配合工作,该内建组可以解决几个xcopy的部署问题。如果你在文件上为IIS_WPG设置权限(在IIS6中这是可以的),并尝试把这些文件拷贝另外一个Windows系统中,由于组SID在不同机器上是不同的,站点设置可能被破坏。

在IIS7中,由于组SID在所有Longhorn系统中是相同的。当你从一台机器向令一台机器移动文件时,使用'xcopy /o'可以保留ACL和拥有权信息,这使得xcopy部署变得简单的多!

客户们的第二个请求是“一旦我们配置了应用程序池身份,我们需要IIS来帮我们做所有必要的修改”。我们接受了这个意见,并使这一过程在IIS7.0中变得更加简单。当IIS启动一个工作者进程(worker process)时,需要创建一个供该进程使用的令牌(token)。现在,当我们创建这个令牌时,IIS将自动在运行时添加IIS_IUSRS membership到工作者进程令牌中,这么做能够让账号以应用程序池身份运行,而不需要显示地作为IIS_IUSRS组的一部分。我们相信这一修改将帮助你更轻易地设置系统,并让您的整体体验更好。

如果你想禁用这个特性并手工添加账号到IIS_IUSRS组,你可以通过设置manualGroupMembership值为true来仅用这一特性。下面是关于如何设置defaultAppPool来禁用这一特性的例子:

<applicationPools>
    <add name="DefaultAppPool">
        <processModel manualGroupMembership="true" />
    </add>
</applicationPools>

上一篇:ASP.NET2.0中TextBox的两个有趣的属性 人气:4693
下一篇:ASP.Net全局变量的设置和读取方法 人气:5343
浏览全部IIS7的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐