2012-03-13 74 views
0

我正在使用新的MVC 4 Beta Web API。我想向Get操作添加[Authorize]属性,以便在从服务器获取数据之前让用户进行身份验证。我使用fiddler来测试这个动作,但它将我重定向到web.config中定义的Login Url。我正在使用[System.Web.Http.Authorize]来添加[Authorize]属性。Web API请求 - 发回身份验证请求

回答

1

发生这种情况的原因是因为Forms Authentication模块劫持了Web API返回的401 HTTP状态码,并重定向到Login页面。你可以看看following blog post,其中Phil Haack谈到如何配置ASP.NET以防止它为AJAX请求做这件事。您可以稍微修改自己的代码,以便它可以处理所有请求,或者仅处理您的Api控制器的请求。

+0

通过NuGet安装此解决方案后,我仍然发送到登录重定向URL,但不是200显示登录我收到一个错误,说它无法找到重定向后的控制器。 – bdparrish 2012-03-15 00:36:31

0

为了让它在我的API中工作,我只是从web.config中删除了认证部分,并写了一个消息处理程序(从我的WCF WebApi代码转换而来)。我已经把我做了什么,以blog post