【问题标题】:blazor wasm using new Claim("roles", role) cause @attribute [Authorize(Roles = "admin")] not workblazor wasm 使用 new Claim("roles", role) 导致 @attribute [Authorize(Roles = "admin")] 不起作用
【发布时间】:2022-02-21 20:26:05
【问题描述】:

当我使用新的claims.Add(new Claim(ClaimTypes.Role, role)); @attribute [Authorize(Roles = "admin")] 和 AuthorizeView Roles="admin" 工作正常。但是当我使用 claim.Add(new Claim("Roles", role)); AuthorizeView(Roles="admin") 不起作用并在浏览器控制台中显示错误:

“RolesAuthorizationRequirement:User.IsInRole 对于以下角色之一必须为真:(admin)”

我测试了 options.TokenValidationParameters.RoleClaimType = "Roles"; 在 AddIdentity() 和 RoleClaimType = "Roles" 在 TokenValidationParameters 但那些不起作用。

我们如何使用“Roles”键代替 ClaimTypes.Role?

我的项目在这里:http://github.com/mammadkoma/Attendance

【问题讨论】:

    标签: jwt blazor-webassembly .net-6.0


    【解决方案1】:

    身份验证状态提供者:

    return new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity(ParseClaimsFromToken(token), "jwtAuthType", ClaimTypes.Name, "Roles")));
    
    var authenticatedUser = new ClaimsPrincipal(new ClaimsIdentity(ParseClaimsFromToken(token), "jwtAuthType", ClaimTypes.Name, "Roles"));
    

    https://github.com/mammadkoma/Attendance/blob/master/Attendance/Client/Configs/AuthStateProvider.cs

    【讨论】:

      猜你喜欢
      • 2019-03-06
      • 2021-01-11
      • 2020-10-28
      • 1970-01-01
      • 2013-09-06
      • 2019-12-20
      • 2020-02-08
      • 2023-03-11
      • 1970-01-01
      相关资源
      最近更新 更多