Групповая авторизация в ASP.NET MVC - PullRequest
0 голосов
/ 06 апреля 2011

У меня есть роли сайта, такие как администратор, пользователь, и это нормально.

Но допустим, у меня есть законное заявление (или что-то подобное). У меня есть сущность под названием Case. Теперь у меня может быть много дел, и не все пользователи должны иметь доступ к какому-либо конкретному случаю. Допустим, Фред и Том должны иметь доступ к Case1, но только Джина и Ребекка должны иметь доступ к Case2?

Довольно просто, верно? У нас есть дела, и пользователи могут принадлежать делу. Это первая часть. Вторая часть состоит в том, как получить «Case Roles», чтобы Фред мог быть «администратором» Case1 и иметь возможность вносить серьезные изменения, но, возможно, Том просто «пользователь» Case1 и может делать только незначительные вещи и иметь только чтение доступ и т. д.

Я знаю, что мне, вероятно, понадобится реализовать собственный атрибут и т. Д., Но я не могу найти в Интернете примеров такого рода вещей. Но я предполагаю, что это должно быть очень распространено в большинстве бизнес-приложений. (например, Basecamp или Highrise и т. д.)

ОБНОВЛЕНИЕ Позвольте мне привести другой пример:

Возьмите программное обеспечение для управления проектами в качестве сервисного приложения, такого как Basecamp. Пользователь может создать «проект». Затем этот пользователь может пригласить других пользователей в свой «проект». Но создатель может назначить разные права для каждого пользователя своему проекту. Основной вопрос заключается в том, как сделать это в ASP.NET MVC.

1 Ответ

0 голосов
/ 06 апреля 2011

что я понимаю из вашего вопроса, так это то, что каждый случай - это сущность (строка в db), и вы хотите иметь разные права доступа для разных дел (сущностей), которые будут назначены разным ролям. в этом случае у вас может быть роль супер-администратора, которая назначает права доступа дел другим ролям. на основе этой информации вы можете написать собственный атрибут atuhorize и получить права, предоставленные супер-администратором для текущего пользователя / роли из базы данных, и принимать решения по этим критериям. Более того, права доступа к созданию дела являются общими, потому что до создания его не существует, поэтому любой, кто имеет право создавать дело, может создать любое дело (будь то case1 или case49). как только дело создано, разрешения этого дела могут быть также установлены создателем дела.

...