ASP 核心 2.2 API。我有 2 項(xiàng)政策:services.AddAuthorization(options => {
options.AddPolicy("RequireClientClaim", policy => policy.RequireAuthenticatedUser().RequireClaim("Client"));
options.AddPolicy("AllAuthenticated", policy => policy.RequireAuthenticatedUser());
});即使有客戶聲明,“RequireClientClaim”也不允許任何用戶。聲明從數(shù)據(jù)庫中獲取并添加到 JWT 令牌中。令牌與授權(quán)一起發(fā)回:Bearer xxxx 標(biāo)頭。我可以在 context.HttpContext.User.Claims 中用戶的下一個請求中看到此聲明:“AllAuthenticated”允許每個人:)所以我猜這里有些東西很糟糕。 [HttpPost, Route("refresh")] [Authorize(Policy = "AllAuthenticated")] public async Task<IActionResult> ActionName(){}我沒有在過濾器中放置任何策略,因?yàn)槲业牟呗圆⒉淮蛩銘?yīng)用于所有控制器和操作。啟動.cs
1 回答

精慕HU
TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個贊
第一個參數(shù)RequireClaim
應(yīng)該是claimType
:
public AuthorizationPolicyBuilder RequireClaim(string claimType, params string[] requiredValues);
如果你想限制client
role( http://schemas.microsoft.com/ws/2008/06/identity/claims/role
) 類型的值,策略將如下:
options.AddPolicy("RequireClientClaim", policy => policy.RequireClaim(ClaimTypes.Role, "Client"));
- 1 回答
- 0 關(guān)注
- 115 瀏覽
添加回答
舉報
0/150
提交
取消