【发布时间】:2020-05-21 14:31:15
【问题描述】:
我正在尝试使用 Microsoft 身份库进行基于角色的授权,但失败了。
- 我可以验证用户身份
- 我看到用户所属的角色与我在控制器上的角色匹配
- 当我转到该控制器时,我收到 403 Forbidden 错误
我不知道如何进一步调试它。
启动:
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))
};
});
我的控制器有一个角色:
[Authorize(Roles = "Internal")]
[ApiController]
[Route("Api/[controller]")]
public class UserController : BasicCrudController<User>
{
// Stuff here ...
}
【问题讨论】:
-
能否分享services.addauthorization的代码。您是否制定了政策?
-
@PrateekKumarDalbehera 我把repo的链接放在问题中
-
会变成 404 ????
-
@PrateekKumarDalbehera 请再试一次。我不确定
标签: c# .net-core asp.net-core-identity