asp.net MVC основанный на роли доступ к контроллеру
Многие статьи онлайн о доступе на основе ролей говорят о применении чего-то подобного для обеспечения доступа на основе ролей к контроллеру или действию.
[Authorize(Roles = "Admin, Manager")]
public class SomeController : Controller
{
}
Все это хорошо, но теперь, если мне нужно реализовать свой собственный пользовательский доступ на основе ролей, в котором у меня есть роли в таблице [RoleMaster] и роли, назначенные пользователю из таблицы [User] в другой таблице с именем [UserRoles]. В моем коде у меня будет пользовательский объект в сеансе, который теперь будет иметь список ролей
public class RegisteredUsers
{
//... other user properties
public List<UserRole> Roles { get; set; }
}
public class UserRole
{
public string RoleID { get; set; }
public string RoleName { get; set; }
//... other properties
}
Теперь, как мне проверить свойство UserRole.RoleName в списке ролей в объекте RegisteredUsers на соответствие любому из значений, которые я присвоил атрибуту Authorize, используя: [Authorize (Roles = "Admin, Manager")]. В некоторых случаях, если роли имеют администратора или менеджера, они должны получить доступ. В некоторых случаях я хочу, чтобы у них были права администратора и администратора, чтобы получить доступ.
Кроме того, в будущем, если в систему будут добавлены новые роли, мне нужно будет пересобрать и повторно развернуть мое приложение со всеми переделанными атрибутами Authorize?
Я не смог найти ни одного четкого примера, реализующего то же самое, или, возможно, я не ищу правильно. Пожалуйста, помогите мне любым возможным способом. Спасибо за ваше время...