Условный / ограниченный доступ в контроллере / просмотре?(MVC2) - PullRequest
0 голосов
/ 12 августа 2010

У меня на сайте сейчас две роли, автор и администратор.Авторы не могут получить доступ к функциям администрирования пользователей.Однако они должны иметь возможность редактировать определенные части своего профиля.В настоящее время администратор может редактировать все части профиля пользователя.Например:

employee ID   [admin]
display name  [author,admin]
roles         [admin]

Я хотел бы повторно использовать код, где это возможно.Я не уверен, что лучшее решение будет здесь.Есть 2 вещи, с которыми приходится иметь дело

  1. Только разрешение пользователю редактировать свой собственный профиль, а не другим
  2. Ограничение полей, которые пользователь может редактировать, и полей, которые может редактировать администратор

Я думаю, что # 1 лучше всего достигается с помощью пользовательского атрибута Authorize (у меня уже есть такой, который я могу расширить далее).Если у вас есть лучший подход, пожалуйста, поделитесь.И № 2 я не уверен, посмотреть модель?Мои разрешенные поля привязаны для пользователя с использованием частичного класса, который будет различным для каждой роли.

1 Ответ

1 голос
/ 12 августа 2010

Ваше решение для # 1 находится на месте, вам нужно использовать AuthorizeAttribute.

Для # 2 вы можете просто выполнить обрезку безопасности, где вы только рендер для конкретного пользователя.

Некоторый псевдокод в вашем представлении (или его перемещение в частичное представление):

if administrator
    render employee ID text box
if administrator || author
    render display name text box
if administrator
    render roles check list

Таким образом, вам нужно будет контролировать, как определить, находится ли пользователь в"роль".Вы можете использовать поставщик членства ASP.NET или сделать что-то свое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...