я создал роль для пользователя в личность, но когда я использую это говорит не авторизован - PullRequest
0 голосов
/ 03 июля 2019

Я использую идентификатор по умолчанию, предоставленный asp.netcore, я сделал роль с именем admin, а также вставил связанные данные в таблицу ASPNetUserRoles, и на моем контроллере я написал [Authorize (Roles = "Admin")], но все же, когда я пытаюсь получить доступ к этому контроллеру, он говорит, что не авторизован. Вот следующие коды.

Я дважды проверил, что ID пользователя и роль верны

выберите идентификатор из AspNetUsers Я бы 58005002-d0d4-4db1-b0bb-5a474cca8013

выберите * из AspNetRoles имя идентификатора normalizedName ConcurrencyStamp c4a56464-53f7-440c-b904-fbc7389ed00a Администратор ADMIN 080dbb2c-7ee-4e28-95fd-6bc73d8b199e

выберите * из AspNetUserRoles UserId RoleId 58005002-d0d4-4db1-b0bb-5a474cca8013 c4a56464-53f7-440c-b904-fbc7389ed00a

[Authorize (Roles = "Admin")] открытый класс AdminController: контроллер {

    // GET: /<controller>/
    public IActionResult Index()
    {
        return View();
    }
}

я могу получить доступ к другим контроллерам, которые авторизованы только без ролей, но у меня проблема с этим.

Ответы [ 2 ]

0 голосов
/ 04 июля 2019

Из этого сообщения , попробуйте зарегистрироваться RoleManager<IdentityRole> как

services.AddDefaultIdentity<IdentityUser>()
   .AddRoles<IdentityRole>()
   .AddRoleManager<RoleManager<IdentityRole>>()
   .AddDefaultUI(UIFramework.Bootstrap4)
   .AddEntityFrameworkStores<DeadAliveDbContext>();
0 голосов
/ 03 июля 2019

Попробуйте добавить роли к вашим услугам в Startup.cs файле

public void ConfigureServices(IServiceCollection services)
{
    services.AddDefaultIdentity<IdentityUser>()
        .AddRoles<IdentityRole>();
}
...