В настоящее время у меня есть система, в которой есть таблица пользователя, таблица ролей и таблица ассоциаций пользователей и ролей, где один пользователь может быть связан с несколькими ролями (например, Admin, BasicUser и т. Д.). Я могу авторизовать методы действий, основанные на этих ролях. Это из системы Identity.Как установить привилегию внутри роли в ASP.NET MVC?
Теперь я хочу добавить поддержку привилегий, чтобы методы действий могли быть ограничены и на основе этих, а не только по ролям. Например, в контроллере у меня может быть действие HTTPPost, которое может успешно выполнить только тот, у кого есть привилегия «Write».
Какие изменения мне нужно сделать, чтобы назначить привилегии для ролей? I.E., я хочу выбрать роль «Admin», чтобы иметь привилегии «Write» и «Read», а роли «BasicUser» будет присвоена только привилегия «Чтение». Таким образом, администратор может получить доступ к любому методу, разрешенному привилегией записи, в то время как BasicUser не может.
Если мне нужно создать другую таблицу под названием «Привилегия» и таблицу ассоциаций между ней и ролями и код для установки привилегий в роли, как я могу использовать эту привилегию в качестве фильтра? Так, например, действие ниже должно разрешаться только пользователем, выполняющим роль, которая имеет привилегию «Write», приписываемую ему.
[Write]
public ActionResult Create()
{
return View();
}
спасибо.
Спасибо за отправную точку. Используя этот метод, будет ли класс YourCustomCode содержать код, который проверяет связь между ролью и привилегией? И.Е. весь код базы данных? – ITWorker
Точно! Не забывайте отмечать как ответ, если вы удовлетворены ответом. – bsoulier