日期:2014-05-17  浏览次数:20434 次

请教IUSR_MachineName 与 Network Service/ASPNET 两个账户之间的关系
主要是web访问的时候,在有的服务器上需要在web目录ACL中加入IUSR_MachineName 才能访问,有的则不需要,这是什么原因?(IIS中都启用了匿名访问)

------解决方案--------------------
在IIS 6/7中,ASPNET账户被替成Network Service。IIS 7中,如果使用的是默认的Network Service,那么ASP.NET程序能访问的资源都是受Network Service限制的,这个账户能访问什么资源,ASP.NET程序才能访问资源。Network Service在默认情况下,是可以读写IIS wwwroot文件夹下的所有文件以及在ACL的控制下来访问其他文件夹。 
ASP.NET程序部署到付费空间上后便不能创建文件了。服务器在machie级别定义了CAS,限制所有运行在这台机器上的ASP.NET不能进行文件操作。目的是为了保护服务器的安全。 
COM组件的访问是需要配置Network Service权限的 
不能添加权限,可在config里impersonate模拟 IIS 验证的帐户或用户 
<identity impersonate="true"  userName="操作系统用户" password="用户密码"/> 
------解决方案--------------------
   LocalSystem   账户 

  LocalSystem是预设的拥有本机所有权限的本地账户,这个账户跟通常的用户账户没有任何关联,也没有用户名和密码之类的凭证。这个服务账户可以打开注册表的HKEY_LOCAL_MACHINE\Security键,当LocalSystem访问网络资源时,它是作为计算机的域账户使用的。 

  举例来说,以LocalSystem账户运行的服务主要有:WindowsUpdate   Client、   Clipbook、Com+、DHCP   Client、Messenger   Service、Task   Scheduler、Server   Service、Workstation   Service,还有Windows   Installer。 

  Network   Service   账户 

  Network   Service账户是预设的拥有本机部分权限的本地账户,它能够以计算机的名义访问网络资源。但是他没有Local   System   那么多的权限,以这个账户运行的服务会根据实际环境把访问凭据提交给远程的计算机。Network   Service账户通常可以访问Network   Service、Everyone组,还有认证用户有权限访问的资源。 

  举例来说,以Network   Service账户运行的服务主要有:Distributed   Transaction   Coordinator、DNS   Client、Performance   Logs   and   Alerts,还有RPC   Locator。 

  Local   Service   账户 

  Local   Service账户是预设的拥有最小权限的本地账户,并在网络凭证中具有匿名的身份。Local   Service账户通常可以访问Local   Service、Everyone组还有认证用户有权限访问的资源。 

  举例来说,以Local   Service账户运行的服务主要有:Alerter、Remote   Registry、Smart   Card、SSDP,还有WebClient。 

 

 

简单说明:

Local   system   :本地系统用户,   个人电脑通常选择这个用户 

Network   service   :网络服务用户,   通常需要远程连接的都使用这个 

Local   Service   :本地服务 

另外还有一个要求输入用户名密码的那个用户是域用户,这个是做集群的时候选择的登陆方式

------解决方案--------------------
之间的关系就是
IUser_MachineName是asp运行的帐号,
ASPNET是xp iis5.1 中iis运行的帐号
Network Service是iis6运行asp.net的帐号,
在IIS 7.0中IUSR内建帐号替代了IUSR_MachineName帐号



在iis6的asp.net2.0网站上,默认情况下,是不用设置ACL为iuser_的