一般来说该错误消息表明您首先需要登录(输入有效的用户名和密码)。 如果你刚刚输入这些信息,立刻就看到一个 401 错误,就意味着,无论出于何种原因您的用户名和密码其中之一或两者都无效(输入有误,用户名暂时停用,等) 。
目录

概述编辑

您的Web服务器认为,客户端(例如您的浏览器或我们的 CheckUpDown 机器人)发送的 HTTP 数据流是正确的,但进入网址 (URL) 资源 , 需要用户身份验证 , 而相关信息 1 )尚未被提供, 或 2 )已提供但没有通过授权测试。这就是通常所知的“ HTTP 基本验证 ”。 需客户端提供的验证请求在 HTTP 协议中被定义为 WWW – 验证标头字段 (WWW-Authenticate header field) 。

401.1

症状
HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝。

分析

由于用户匿名访问使用的账号(默认是IUSR_机器名)被禁用,或者没有权限访问计算机,将造成用户无法访问。
解决方案

(1)查看IIS管理器中站点安全设置的匿名帐户是否被禁用,如果是,请尝试用以下办法启用:
控制面板->管理工具->计算机管理->本地用户和组,将IUSR_机器名账号启用。如果还没有解决,请继续下一步。

(2)查看本地安全策略中,IIS管理器中站点的默认匿名访问帐号或者其所属的组是否有通过网络访问服务器的权限,如果没有尝试用以下步骤赋予权限:
开始->程序->管理工具->本地安全策略->安全策略->本地策略->用户权限分配,双击“从网络访问此计算机”,添加IIS默认用户或者其所属的组。
注意:一般自定义 IIS默认匿名访问帐号都属于组,为了安全,没有特殊需要,请遵循此规则。

401.2

症状
HTTP 错误 401.2 - 未经授权:访问由于服务器配置被拒绝。

原因

关闭了匿名身份验证

解决方案

运行inetmgr,打开站点属性->目录安全性->身份验证和访问控制->选中“启用匿名访问”,输入用户名,或者点击“浏览”选择合法的用户,并两次输入密码后确定。

401.3

症状

HTTP 错误 401.3 - 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。

原因

IIS匿名用户一般属于Guests组,而我们一般把存放网站的硬盘的权限只分配给administrators组,这时候按照继承原则,网站文件夹也只有administrators组的成员才能访问,导致IIS匿名用户访问该文件的NTFS权限不足,从而导致页面无法访问。

解决方案

给IIS匿名用户访问网站文件夹的权限,方法:进入该文件夹的安全选项,添加IIS匿名用户,并赋予相应权限,一般是读、写。
自定义编辑

我们可以通过ASP配置文件Web.config 来进行设置,用这个标签来进行设置,代码如下:

<customErrors defaultRedirect="ErrorPage.aspx" mode="On">
<error statusCode="401" redirect="AccessDenied.aspx" />
</customErrors>

请一定要确保这些错误页面的访问,此外,如果你有

<authorization>
<deny users="?" />
</authorization>

在你的验证里面,然后你必须把这些错误页面放到一个单独的文件夹里面,然后添加一个ASP配置文件Web.config,加入下面一段代码:

<authorization>
<allow users="*" />
</authorization>

如果您使用窗体身份验证,那么有几种方法可以做到这一点。最简单的方法是处理所有的人都能在到达另外一个文件夹中的一切不安全的页面(登录页面,错误页面,修改密码)。名称为“InSecured”或其它名称,然后在该文件夹中添加一个web.config文件到该文件夹中,并把下列代码:

<authorization>
<allow users="*" />
</authorization>

添加在最底层的web.config文件中,其它文件夹和页面里则添加下面这段代码:

<authorization>
<deny users="?" />
<allow users="*" />
</authorization>

这里要说明的是的作用是为ASP应用程序提供有关自定义错误信息的信息。它不适用于 XML Web services 中发生的错误。