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

精慕HU
TA貢獻1845條經驗 獲得超8個贊
第一個參數RequireClaim
應該是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 關注
- 117 瀏覽
添加回答
舉報
0/150
提交
取消