我正在使用新的MVC 4 Beta Web API。我想在[Authorize]
操作中添加Get
属性,以便用户在从服务器获取数据之前进行身份验证。我正在使用fiddler测试操作,但是它将我重定向到web.config中定义的Login Url。我使用[System.Web.Http.Authorize]
添加[Authorize]
属性。
答案 0 :(得分:1)
发生这种情况的原因是因为表单身份验证模块劫持了Web API返回的401 HTTP状态代码并重定向到了“登录”页面。您可以查看Phil Haack讨论如何配置ASP.NET以防止它为AJAX请求执行此操作的following blog post。您可以稍微修改他的代码,以便它为所有请求执行此操作,或仅针对您的Api控制器的请求。
答案 1 :(得分:0)
为了让它在我的API中运行,我刚刚从web.config中删除了身份验证部分,并编写了一个消息处理程序(从我的WCF WebApi代码转换得很好)。我把我所做的事情放到blog post。