2012-08-31 147 views
0

我使用的ASP.NET Web API和使用驗證參考http://stevescodingblog.co.uk/basic-authentication-with-asp-net-webapi/
的ASP.NET Web API認證和驗證

它的工作原理well.If尚未授權頭的請求,響應HttpStatusCode是「未授權」。

但是,當某些json數據從客戶端發送的列有一些不正確的列時,儘管請求沒有授權標頭,但響應HttpStatusCode是「內部服務器錯誤」。

[BasicAuthentication] 
public HttpResponseMessage Create(Customer customer) 
{ 
    // 
} 
public class Customer{ 
    public int id{set;get;} 
    public string name{set;get;}  
} 

例如,發送POST方法/創建,內容類型是application/JSON和請求體{ 「ID」: 「ABC」, 「名」: 「某人」}(ID是錯誤的:不是int而是字符串)並且沒有Authorization標頭。響應HttpStatusCode是「內部服務器錯誤」而不是「未經授權」。

也許創建客戶實例早於授權。你知道先改變授權嗎?

回答

0

如果您已將您的BasicAuthenthication屬性創建爲ActionFilterAttribute,則可以嘗試將其更改爲AuthorizationFilterAttribute。 OnActionExecuting然後將更改爲OnAuthorization。我認爲其餘大部分應該是非常相似的。

+0

我工作的很好。謝謝。 – taiji