为了账号安全,请及时绑定邮箱和手机立即绑定

RequireClaim 和 RequireAuthenticatedUser 策略不起作用

RequireClaim 和 RequireAuthenticatedUser 策略不起作用

C#
largeQ 2023-07-09 16:39:53
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);

如果你想限制clientrole( http://schemas.microsoft.com/ws/2008/06/identity/claims/role) 类型的值,策略将如下:

options.AddPolicy("RequireClientClaim", policy => policy.RequireClaim(ClaimTypes.Role, "Client"));



查看完整回答
反对 回复 2023-07-09
  • 1 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信