我有一個使用 IdentityServer4 作為登錄服務(wù)器的 ASP.NET Core 客戶端應(yīng)用程序??蛻舳丝梢允褂脤傩缘卿浹b飾控制器,[Authorize]但是如果我將屬性與角色一起使用,[Authorize(Roles = "test")]我會得到拒絕訪問但是,當(dāng)我解析 JWT 時,我可以看到用戶分配了正確的角色。{ "nbf": xxx, "exp": xxx, "iss": "xxx", "aud": [ "xxx", "xxx" ], "client_id": "xxx", "sub": "xxx", "auth_time": xxx, "idp": "xxx", "email": "xxx", "role": "test", <------------------------------- "scope": [ "openid", "profile", "xxx", "xxx" ], "amr": [ "xxx" ]}
2 回答

FFIVE
TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個贊
請確保您附加了正確的 jwt。您提供的那個看起來不錯,但您可能附加了請求具有不同有效負(fù)載的 id_token。

哈士奇WWW
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個贊
即使用戶角色存在于訪問令牌中,它也不會被識別為角色,因?yàn)樗怯脩袈暶鞯囊徊糠?。例?code>User.IsInRole("test")返回 false。
我通過創(chuàng)建一個策略來使用RequireClaim
然后設(shè)置Authorize
屬性來使用該策略來解決這個問題,例如[Authorize(Policy = "RequireUserOnly")]
- 2 回答
- 0 關(guān)注
- 165 瀏覽
添加回答
舉報
0/150
提交
取消