抛出401未经授权的错误,所以Web.config显示适当的页面

我正在做一个Ajax调用,如果用户不是管理员,我想抛出401类型的错误 - 未经授权,然后让web.config将用户重定向到我的访问被拒绝页面:

    <customErrors mode="On">
  <error statusCode="500" redirect="~/InternalError.html"/>
  <error statusCode="401" redirect="~/AccessDenied.aspx"/>
</customErrors>

正如你所看到的,我有一个500型内部服务器错误来处理其他错误。 但是,当我运行这个代码:

     if (user.Type != AppUser.UserType.SystemAdministrator)
            {
                throw new HttpException((int)HttpStatusCode.Unauthorized, "Unauthorized");
            }

web.config认为500被抛出并显示InternalError.htm而不是AccessDenied.aspx。 我如何告诉我的ASP.NET应用程序抛出401而不是500,所以会显示正确的错误页面?

这不是MVC。


改为设置Response.StatusCode,它将触发重定向。

或者,您可以使用下面的内容:

throw new HttpException(401, "Unauthorized");
链接地址: http://www.djcxy.com/p/71845.html

上一篇: Throw error of 401 Unauthorized so Web.config shows appropriate page

下一篇: MVC 3 401 Unauthorized on hosting server