1、错误号401.1
症状:HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝。
分析:
由于用户匿名访问使用的账号(默认是IUSR_机器名)被禁用,或者没有权限访问计算机,将造成用户无法访问。
解决方案:
(1)查看IIS管理器中站点安全设置的匿名帐户是否被禁用,如果是,请尝试用以下办法启用:
控制面板->管理工具->计算机管理->本地用户和组,将IUSR_机器名账号启用。如果还没有解决,请继续下一步。
(2)查看本地安全策略中,IIS管理器中站点的默认匿名访问帐号或者其所属的组是否有通过网络访问服务器的权限,如果没有尝试用以下步骤赋予权限:
开始->程序->管理工具->本地安全策略->安全策略->本地策略->用户权限分配,双击“从网络访问此计算机”,添加IIS默认用户或者其所属的组。
注意:一般自定义 IIS默认匿名访问帐号都属于组,为了安全,没有特殊需要,请遵循此规则。
2、错误号401.2
症状:HTTP 错误 401.2 - 未经授权:访问由于服务器配置被拒绝。
原因:关闭了匿名身份验证
解决方案:
运行inetmgr,打开站点属性->目录安全性->身份验证和访问控制->选中“启用匿名访问”,输入用户名,或者点击“浏览”选择合法的用户,并两次输入密码后确定。
3、错误号:401.3
症状:HTTP 错误 401.3 - 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。
原因:IIS匿名用户一般属于Guests组,而我们一般把存放网站的硬盘的权限只分配给administrators组,这时候按照继承原则,网站文件夹也只有administrators组的成员才能访问,导致IIS匿名用户访问该文件的NTFS权限不足,从而导致页面无法访问。
解决方案:
给IIS匿名用户访问网站文件夹的权限,方法:进入该文件夹的安全选项,添加IIS匿名用户,并赋予相应权限,一般是读、写。
在配置IIS的时候,如果安全稍微做的好一些。就会出现各式各样的问题。比如,常见的访问网页会弹出用户名密码的登陆界面,或者是访问某种页面比如html,asp没事情,但是访问jsp或者php就有问题,显示401.3 ACL 禁止访问资源等
通常的解决办法是:
一:看iis中(不管iis5 还是iis6) ,网站或者目录,包括虚拟目录的属性,看目录安全性选项卡中的 编辑匿名访问和身份验证控制,看看是用的哪个帐号,如果是用的iis匿名帐号(一般是IUSR_机器名),或者由系统管理员设置了其他帐号,这个帐号很重要,下面成IIS匿名帐号 察看帐号的密码是否是正确的系统设置的密码,实在不行就在计算机管理里面的用户管理,重新把帐号设置一个密码,然后在编辑匿名访问和身份验证控制选项中把密码重新设置一下。
二:在资源管理器里面看放置网站或者目录的安全选项。是否IIS匿名帐号有权限访问,一般来说,NT系统中的IUSR_机器名这个帐号都会是在user组里面,有时候禁用了user组,也会引起这个问题,让刚才设置的IIS匿名帐号或者帐号所在的系统组有对目录的访问权限,至少要有读权限。
三:在你放置的程序中,看是否含有其他类型的动态语言写的程序,IIS会默认对asp进行解释,对于ASPX来说,要看net执行文件目录是否让IIS匿名帐号有读权限?cgi程序就是perl目录,jsp看是用resin还是用tomcat做的解释,php就是php目录,要保证这些目录都让IIS匿名帐号有读权限才行。
四:或者是因为(诸如php.exe php.ini php5isapi.dll).PhpMyadmin这些文件或文夹被去掉了users权限所致(这点要特别注意了,外网访问要输入账户密码也跟这个关系,或许我的程序是PHP的吧)