2012-03-13 195 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