Роль удостоверения пользователя

#asp.net-core #razor-pages

Вопрос:

Я использую asp.net основная страница razor Я провожу много времени с этой вещью, которая кажется простой, но не могу найти решение.

Создайте проект и работайте хорошо, войдите в систему, зарегистрируйтесь и т.д. Но авторизация не работает с ролями. Роли создаются и:

Но всегда возвращайте Отказ в доступе при попытке доступа:

Теперь я создаю две роли 1-Администратор 2-Пользователь в базе данных AspNetUserRoles как на фото

quot;quot;

и это мой код

    [Authorize(Policy = "Admin")]
    public class AdminModel : PageModel
    {
        public void OnGet()
        {
        }
    }
 

а в стартапе есть

       services.AddAuthorization(options =>
            {
                options.AddPolicy("Admin",
                     policy => policy.RequireRole("Admin"));
            });
 

проблема в том, что всегда отказано в доступе?

Ответ №1:

Название NormalizedName роли должно быть прописным — АДМИНИСТРАТОР. Лучше всего использовать RoleManager.CreateAsync API для создания ролей, а не добавлять их вручную в базу данных.

Ответ №2:

Я допустил ошибку, это было заполнение роли AspNetUser и роли AspNetRole вручную, и правильный способ-заполнить страницу регистрации автоматического броска.