ASP.NET MVC. Использование [Authorize(Roles = "Роль"), имея старый string Roles в проекте
В проекте до меня использовалась модель User:
{
public string Name { get; set; }
public Role Role { get; set; }
}
Role:
{
public string Title { get; set; }
}
На ней уже много что написано, но сейчас я банально хз как это применить к авторизации, можно сказать что это сделано под админку(года так с 2013-2014). Принцип примерно такой(Зашел под админом - держи доступ в админку. Не админ? - Не пущу)
if(UserCurrentRole == "Администратор")
{
действия
}
Сейчас разделяю авторизацию и добавляю виды пользователей и хочу из разграничивать через [Authorize(Role = "Продавец"] на контроллере(условно)
Можно ли как то применить эту модель Role на [Authorize]?
Ответы (1 шт):
Вы можете вписывать в атрибут Authorize(Role любую текстовую строку, какая вам нравится. Хотите продавец - ок, пусть будет продавец.
Главное, не забудьте потом пройти в таблицу базы данных и вставить эту строку в таблицу ролей (штатно её название dbo.AspNetRoles) и указать в таблице dbo.AspNetUserRoles какие пользователи входят в эту роль:
При этом НА ДАННОМ ЭТАПЕ какая разница какой у вас класс используется - типовой класс из библиотеки identity или ваш кастомный? Никакой. Админка работала все эти годы, значит, как-то была настроена: просто добавьте новую роль продавец в таблицу БД, навесьте [Authorize(Role = "Продавец"] на любой тестовый экшн/контроллер и убедитесь сами, что видно только пользователям из нужных групп.
