用浏览器访问服务器时,不同情况下会返回不同的信息。服务器发生错误就会返回错误信息,我们最熟悉的就是404错误页面,但是这里我想和大家分享下asp.net条件下怎样设置401自定义错误页面。
谈到401错误,虽然没有404错误那么被大家所熟知,但是对服务器有所了解的人都知道,http错误代码的含义,"401" : Unauthorized,而如果细分下就是如下:
HTTP 401.1 - 未授权:登录失败
HTTP 401.2 - 未授权:服务器配置问题导致登录失败
HTTP 401.3 - ACL 禁止访问资源
HTTP 401.4 - 未授权:授权被筛选器拒绝
HTTP 401.5 - 未授权:ISAPI 或 CGI 授权失败
我们可以通过ASP.NET配置文件Web.config 来进行设置,用这个标签来进行设置,代码如下:
<customErrors defaultRedirect="ErrorPage.aspx" mode="On">
<error statusCode="401" redirect="AccessDenied.aspx" />
</customErrors>
请一定要确保这些错误页面的访问,此外,如果你有
<authorization>
<deny users="?" />
</authorization>
在你的验证里面,然后你必须把这些错误页面放到一个单独的文件夹里面,然后添加一个ASP.NET配置文件Web.config,加入下面一段代码:
<authorization>
<allow users="*" />
</authorization>
如果您使用窗体身份验证,那么有几种方法可以做到这一点。最简单的方法是处理所有的人都能在到达另外一个文件夹中的一切不安全的页面(登录页面,错误页面,修改密码)。名称为“InSecured”或其它名称,然后在该文件夹中添加一个web.config文件到该文件夹中,并把下列代码:
<authorization>
<allow users="*" />
</authorization>
添加在最底层的web.config文件中,其它文件夹和页面里则添加下面这段代码:
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
以上就是如何设置自行定义401错误页面的方法,不过这里要说明的是的作用是为ASP.NET应用程序提供有关自定义错误信息的信息。它不适用于 XML Web services 中发生的错误。