gpt4 book ai didi

c# - .NET Core 3.1基于角色的授权失败,出现403异常

转载 作者:行者123 更新时间:2023-12-03 14:00:26 25 4
gpt4 key购买 nike

我正在尝试使用Microsoft身份库来进行基于角色的授权,但是失败了。

  • 我可以验证用户
  • 我看到用户所属的角色与我在 Controller
  • 上拥有的角色匹配
  • 当我转到该 Controller 时,我收到403禁止错误

  • 我不知道如何进一步调试它。

    启动:
    services.AddIdentity<User, UserRole>(opt => opt.User.RequireUniqueEmail = true)
    .AddRoles<UserRole>()
    .AddEntityFrameworkStores<EntityDbContext>()
    .AddDefaultTokenProviders();

    var jwtSetting = _configuration
    .GetSection("JwtSettings")
    .Get<JwtSettings>();

    services.AddAuthentication(options => {
    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
    })
    .AddJwtBearer(config =>
    {
    config.RequireHttpsMetadata = false;
    config.SaveToken = true;

    config.TokenValidationParameters = new TokenValidationParameters
    {
    ValidIssuer = jwtSetting.Issuer,
    ValidAudience = jwtSetting.Audience,
    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSetting.Key))
    };
    });

    我的 Controller 的角色:
    [Authorize(Roles = "Internal")]
    [ApiController]
    [Route("Api/[controller]")]
    public class UserController : BasicCrudController<User>
    {
    // Stuff here ...
    }

    Repo url

    最佳答案

    您应该将类​​型ClaimsIdentity.RoleClaimType的声明添加到jwt token 中以获取其作用

    关于c# - .NET Core 3.1基于角色的授权失败,出现403异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60079817/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com