Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我的[授权(角色=“管理”)发送状态代码403?_C#_Asp.net Core_Identityserver4 - Fatal编程技术网

C# 为什么我的[授权(角色=“管理”)发送状态代码403?

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

Asp.Net核心3.1

我可以在Startup.cs类中进行更改吗

Startup.cs

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
必须按照前面代码中显示的顺序调用。