1

我正在開發具有Identity 2.0承載認證的ASP.NET Web API應用程序。我配置了承載認證並實現了SignIn方法,這樣當我傳遞頭時:Web API承載令牌認證授權不起作用

Authorization: Bearer uGjAWZA1nPc1AqPuKpAzPhb989SYbtGd... 

工作正常。我可以撥打User.Identity.GetUserId()User.Identity.GetUserName()。我甚至可以檢查用戶是否在某個角色中,並且它也很好。

什麼是不工作,是[Authorize]屬性。當我指定角色,如[Authorize(Roles = "Admin")]它返回:

{ 
    Message: "Authorization has been denied for this request." 
} 

任何想法?

回答

2

您是否在創建身份時添加了角色聲明?

userIdentity.AddClaim(new Claim(ClaimTypes.Role, "Admin")); 
+0

非常好!如果有一天管理員會改變用戶的角色呢?在這種情況下,用戶將不再是管理員,但他可以使用管理資源。如何處理這個? – Andrei 2014-09-24 12:16:05