#asp.net-core #razor-pages
Вопрос:
Я использую asp.net основная страница razor Я провожу много времени с этой вещью, которая кажется простой, но не могу найти решение.
Создайте проект и работайте хорошо, войдите в систему, зарегистрируйтесь и т.д. Но авторизация не работает с ролями. Роли создаются и:
Но всегда возвращайте Отказ в доступе при попытке доступа:
Теперь я создаю две роли 1-Администратор 2-Пользователь в базе данных AspNetUserRoles
и это мой код
[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 вручную, и правильный способ-заполнить страницу регистрации автоматического броска.