C# 为什么我的[授权(角色=“管理”)发送状态代码403?
Asp.Net核心3.1 我可以在Startup.cs类中进行更改吗 Startup.cs:C# 为什么我的[授权(角色=“管理”)发送状态代码403?,c#,asp.net-core,identityserver4,C#,Asp.net Core,Identityserver4,Asp.Net核心3.1 我可以在Startup.cs类中进行更改吗 Startup.cs: services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer( Configuration.GetConnectionString("DefaultConnection"))); services.Add
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true)
.AddDefaultUI()
.AddRoles<IdentityRole>()
.AddRoleManager<RoleManager<IdentityRole>>()
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddIdentityServer()
.AddApiAuthorization<ApplicationUser, ApplicationDbContext>();
services.AddDbContext(选项=>
options.UseSqlServer(
GetConnectionString(“DefaultConnection”);
services.AddDefaultIdentity(options=>options.SignIn.RequireConfirmedAccount=true)
.AddDefaultUI()
.AddRoles()
.AddRoleManager()
.AddEntityFrameworkStores();
services.AddIdentityServer()
.addapi授权();
角色创建成功
[HttpPost]
[Route("CreateRole")]
public async Task<IActionResult> CreateRole([FromBody] Admin admin)
{
try
{
if (ModelState.IsValid)
{
var UserID = User.FindFirst(ClaimTypes.NameIdentifier).Value;
if(UserID != null)
{
var user = await _userManager.FindByIdAsync(UserID);
if (user != null)
{
var roleExist = await _roleManager.RoleExistsAsync(Role.Admin);
if (!roleExist)
{
var result = await _roleManager.CreateAsync(new IdentityRole(admin.rolename));
}
await _userManager.AddToRoleAsync(user, Role.Admin);
}
}
}
}
catch (Exception e)
{
return Ok(new { status = "FAILED"});
}
return Ok(new { status = "SUCCESS" });
}
[HttpPost]
[路由(“创建角色”)]
公共异步任务CreateRole([FromBody]Admin)
{
尝试
{
if(ModelState.IsValid)
{
var UserID=User.FindFirst(ClaimTypes.NameIdentifier).Value;
if(UserID!=null)
{
var user=await\u userManager.FindByIdAsync(UserID);
如果(用户!=null)
{
var roleExist=wait_roleManager.RoleExistsAsync(Role.Admin);
如果(!roleExist)
{
var result=await_roleManager.CreateAsync(新的IdentityRole(admin.rolename));
}
wait_userManager.AddToRoleAsync(user,Role.Admin);
}
}
}
}
捕获(例外e)
{
返回Ok(新的{status=“FAILED”});
}
返回Ok(新的{status=“SUCCESS”});
}
在我使用[Authorize(Roles=“Admin”)时添加角色(“Admin”)后,控制器类会发送403状态代码。Hi@tanvir hasan,确保
UseRouting
,UseAuthentication
,UseAuthorization
和UseEndpoints
必须按照前面代码中显示的顺序调用。