【问题标题】:Throw http exception (Unauthorized) from Application_Error从 Application_Error 抛出 http 异常(未经授权)
【发布时间】:2012-07-17 06:23:24
【问题描述】:

我试图从 Global asax Application_Error 中抛出这一行

throw new HttpException((int)HttpStatusCode.Unauthorized, "Forbidden");

但由于某种原因,我在浏览器中得到 200 而不是 401,你知道为什么吗?

更新:

protected void Application_Error(object sender, EventArgs e)
{        
    throw new HttpException((int)HttpStatusCode.Unauthorized, "Forbidden");
}

【问题讨论】:

  • 你有表单认证吗?在 web.config 中启用?如果您在 web.config 中启用了表单身份验证,那么您可能会遇到这种情况。
  • @Mark,谢谢,但我不知道。
  • 请发布您的 Application_Error

标签: c# asp.net-mvc-3 http-status-code-403 httpexception


【解决方案1】:

此代码可能对您有所帮助

 protected void Application_Error(object sender, EventArgs e)
 {
     Response.StatusCode = (int)HttpStatusCode.Unauthorized;
     Server.ClearError();
 }

但是,您应该在 web.config 中应用身份验证和授权,而不是在 Global.asax 中设置状态代码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 2012-02-22
    • 2014-07-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    相关资源
    最近更新 更多