【问题标题】:Web API Bearer token authentication Authorize doesn't workWeb API Bearer 令牌身份验证授权不起作用
【发布时间】:2014-11-18 21:39:48
【问题描述】:

我正在开发带有 Identity 2.0 Bearer 身份验证的 ASP.NET Web API 应用程序。我已经配置了不记名身份验证并实现了 SignIn 方法,因此当我通过标头时:

Authorization: Bearer uGjAWZA1nPc1AqPuKpAzPhb989SYbtGd...

正常工作。我可以打电话给User.Identity.GetUserId()User.Identity.GetUserName()。我什至可以检查用户是否在某个角色中,它也很好用。

什么不起作用,是[Authorize] 属性。当我指定角色时,就像[Authorize(Roles = "Admin")] 它返回:

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

有什么想法吗?

【问题讨论】:

    标签: asp.net-mvc asp.net-web-api asp.net-mvc-5 asp.net-identity asp.net-identity-2


    【解决方案1】:

    您是否在创建身份时添加了角色声明?

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

    【讨论】:

    • 太棒了!如果有一天管理员会改变用户的角色怎么办?在这种情况下,用户将不再是管理员,但他将能够使用管理员资源。如何处理?
    猜你喜欢
    • 2013-11-25
    • 1970-01-01
    • 2018-07-01
    • 2014-07-06
    • 2019-10-14
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多