如何從WebAPI方法返回HTTP 403?我試着拋出HttpResponseException與HttpStatusCode.Forbidden,我已經試過在WebAPI方法中返回HTTP 403
return request.CreateErrorResponse(HttpStatusCode.Forbidden, pEx);
無論其工作。兩者總是返回一個HTTP 200.我錯過了什麼?它必須是簡單的東西,但我沒有看到它。
如何從WebAPI方法返回HTTP 403?我試着拋出HttpResponseException與HttpStatusCode.Forbidden,我已經試過在WebAPI方法中返回HTTP 403
return request.CreateErrorResponse(HttpStatusCode.Forbidden, pEx);
無論其工作。兩者總是返回一個HTTP 200.我錯過了什麼?它必須是簡單的東西,但我沒有看到它。
您的路由配置可能有問題。以下是一個工作示例。把它放在你的控制器裏,看看它是否有效。如果沒有,請使用診斷工具(例如Cobisi Routing Assistant)檢查路由。
public HttpResponseMessage GetSomeString(int id)
{
// This method is not allowed!
return this.Request.CreateErrorResponse(HttpStatusCode.Forbidden, "This method is not allowed!");
}
Teoman,這是行不通的。奇怪的是,它似乎與DotNetOpenAuth有某種相互作用。我的web api是一個用DotNetOpenAuth保護的端點。如果我在沒有經過DotNetOpenAuth驗證的情況下調用我的方法,我會得到一個403.但是,如果我通過DotNetOpenAuth驗證進行調用,並且驗證失敗(這是我想要返回403的情況),則同一行你建議運行的代碼,但不管我得到200回。所以我想我必須重新發佈一個dotnetopenauth標籤。 –
從HttpResponseMessage獲取無效轉換爲字符串 – user3953989
如何修復無效轉換爲字符串? – GreyCloud
您是否試過這裏的解決方案? http://stackoverflow.com/a/10658604/163495 – Richard
http://stackoverflow.com/questions/17081826/net-web-api-throw-exception-return-response-return-error-response-for-404- 400-r – SimSimY
你能分享更多的代碼...我們無法複製你的問題 –