Роли ASP.NET MVC без базы данных (и без поставщика ролей) - PullRequest
3 голосов
/ 20 августа 2009

У меня есть супер простое приложение ASP.NET MVC, которое использует RpxNow (OpenID), чтобы позволить пользователям войти в систему. Теперь я хочу позволить пользователям редактировать свою учетную запись и предоставить администратору доступ для редактирования любой учетной записи.

У меня есть два отдельных представления «Изменить учетную запись»:

  • ~ / счет / редактировать /
  • ~ / счет / редактирование / 1

Первый загружает данные учетной записи на основе зарегистрированного пользователя. Второй загружает данные учетной записи, используя предоставленный AccountId. Первый будет для обычных пользователей, а второй для администратора.

Сначала мне нужно определить роли (пользователь, администратор), а затем мне нужно назначить учетную запись пользователя (или несколько пользователей) для этой роли.

Тогда мне нужно проверить роль в контроллере. Мне нравится эта концепция:

http://schotime.net/blog/index.php/2009/02/17/custom-authorization-with-aspnet-mvc/

Итак, перейдем к вопросам:

  1. Есть ли простой способ определить список ролей в файле web.config?
  2. Есть ли простой способ определить, какие пользователи в каких ролях играют в файле web.config?
  3. Есть ли способ сделать это БЕЗ провайдеров членства / ролей?
  4. Я подхожу к этому с неправильной точки зрения? Должен ли я разделить приложение на две ветви и защитить их на основе авторизации папки?

Ответы [ 2 ]

3 голосов
/ 20 августа 2009

Я не дружу с тем, чтобы хранить данные авторизации в web.config. Я предпочитаю хранить его в базе данных или других XML-файлах.

Посмотрите на Xml Членство / Поставщик ролей . При этом используются Члены / Роли для чтения пользовательских данных, но показан способ хранения и чтения данных авторизации пользователей из XML-файлов.

Завершение приложения решает проблему и не решает.

0 голосов
/ 20 августа 2009

Помните, что вся сантехническая санкция по-прежнему действительно вращается вокруг IPrincipals, поставщики ролей / членства - это просто оформление витрины, чтобы позволить большинству приложений не писать этот код. В этом случае вы можете легко добавить поддерживаемый базой данных (или просто статический, если список достаточно короткий) список ролей и список пользователей в ролях и запросить их. Оберните его за собственный IPrincipal и вещи, которые щенок там в соответствующем месте, и вы золотой.

...