C# 使用401.1拒绝ASP.NET MVC 5登录POST Http请求

C# 使用401.1拒绝ASP.NET MVC 5登录POST Http请求,c#,asp.net-mvc-5,asp.net-identity-2,C#,Asp.net Mvc 5,Asp.net Identity 2,我在我的MVC网站上使用vanilla Identity 2.x进行身份验证。客户端angularjs正在向帐户控制器的登录方法发送post请求 现在,用例是在用户被禁用时拒绝http状态代码为401.1的http post请求 Vanilla Login方法根据登录成功或失败返回bool值 我尝试发送一个状态码设置为401的Http响应,但浏览器接收到一个200 OK,其中401在头变量中 如何使用401发送响应,而不让它被200代码劫持 如果使用HttpUnauthorized,浏览器将接收

我在我的MVC网站上使用vanilla Identity 2.x进行身份验证。客户端angularjs正在向帐户控制器的登录方法发送post请求

现在,用例是在用户被禁用时拒绝http状态代码为401.1的http post请求

Vanilla Login方法根据登录成功或失败返回bool值

我尝试发送一个状态码设置为401的Http响应,但浏览器接收到一个200 OK,其中401在头变量中

如何使用401发送响应,而不让它被200代码劫持

如果使用HttpUnauthorized,浏览器将接收500个内部服务器以及整个aspx页面内容


我使用的是MVC5.2,C#6.0

您应该抛出适当的异常-HttpResponseException。试着这样做:

var message = new HttpResponseMessage(HttpStatusCode.Unauthorized) { ReasonPhrase = "ohhh no!" };    
throw new HttpResponseException(msg);

浏览器接收到一个500状态码。如果HttpResponse.StatusCode设置为401,则浏览器应重定向用户,但仅当找到Web.config部分时