Asp.net mvc 4 WebAPI中的自定义Ajax身份验证过滤器(不工作)

Asp.net mvc 4 WebAPI中的自定义Ajax身份验证过滤器(不工作),asp.net-mvc-4,angularjs,asp.net-web-api,Asp.net Mvc 4,Angularjs,Asp.net Web Api,我在Webapi中使用angularJs(它使用表单验证)。 当我在webabpi中使用authroize属性并从客户端发送ajax请求时,我收到了http 302响应,但当请求为ajax请求时,我想直接从服务器发送http 401,当请求为完整的页面引用请求时,我想发送302响应。我尝试过自定义操作筛选器,但仍然没有获得任何成功http 302 public class AuthorizeFilter : System.Web.Http.AuthorizeAttribute {

我在Webapi中使用angularJs(它使用表单验证)。 当我在webabpi中使用authroize属性并从客户端发送ajax请求时,我收到了http 302响应,但当请求为ajax请求时,我想直接从服务器发送http 401,当请求为完整的页面引用请求时,我想发送302响应。我尝试过自定义操作筛选器,但仍然没有获得任何成功http 302

 public class AuthorizeFilter : System.Web.Http.AuthorizeAttribute
    {
        public AuthorizeFilter()
            : base()
        {

        }
        protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
        {

            throw new HttpResponseException(System.Net.HttpStatusCode.Unauthorized) ;

        }
    }

可能发生的情况是,服务器上运行一个表单验证模块,在看到未经授权的响应时,它可以透明地将您发送到登录页面,我相信这是使用302完成的。您是否可以直接从浏览器中发出webapi请求,然后查看您获得的状态码。@Chandermani,我同意。如果你看一下维基百科,302被定义为一种重定向方式——基于表单的身份验证通过检查用户是否经过身份验证,然后重定向到登录页面。编辑:根据平台的不同,您可能需要禁用Web服务器中的模块并重新实现身份验证机制,或者只需相应地更改代码。可能存在重复的