Нужен совет по поводу моего собственного контроля доступа на основе ролей (RBAC) - PullRequest
1 голос
/ 25 февраля 2011

У меня есть довольно простая страница профиля, где пользователи могут загружать изображения и видео. Я реализовал свою собственную систему ролей, и я не использую .NET (я хотел учиться и создал свою собственную). Максимум 10 000 пользователей и около 50-100 пользователей одновременно.

У меня есть три таблицы в БД, которые обрабатывают мой RBAC:

Роли : Администратор, Пользователь, Менеджер, Гость
Разрешения : SendEmail, AdvancedSearch, RemoveUser ... и т. Д.

Авторизован : В этой таблице я сопоставляю роль разрешению. Я запускаю проверку каждый раз, когда для действия требуется разрешение. Если роль <-> разрешена в таблице, я возвращаю true и действие авторизовано.

Итак, вот несколько вопросов по этому сценарию.

  • Это легкий способ проверки разрешение? Запрашивая БД на каждая страница загрузки и действия пользователя делает.
  • Должен ли я хранить это в XML-файле для быстрее результат?
  • Есть ли лучшая структура для этого вроде RBAC?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 25 февраля 2011

Для 50-100 пользователей я бы просто кешировал что-то на каждого активного пользователя в приложении.Это позволяет избежать любых небольших накладных расходов при извлечении из базы данных, за исключением случаев, когда он истекает.Так что просто есть небольшой объект, который можно дешево кэшировать, но который включает всю пользовательскую информацию, необходимую для запуска основных функций приложения.

Ничто не мешает вам использовать это для реализации IPrincipal для использования встроенного[PrincipalPermission(...)] вещи, но делать это самостоятельно тоже работает.

0 голосов
/ 30 июля 2015

Ниже приведены ответы на ваши вопросы.

• Это простой способ проверки авторизации?Выполняя запросы к БД на каждой странице загрузки и действия, пользователь выполняет.

Ans .Я бы применил настраиваемый уровень системы кэширования к базе данных и использовал бы эту систему кэширования для авторизаций с настраиваемым сроком действия.

• Должен ли я хранить это в XML-файле для более быстрого результата?

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

• Есть ли лучшая структура для этого типа RBAC?

Ans .Что касается структуры БД и RBAC, то она должна быть достаточно безопасной, чтобы элементы управления доступом или разрешения для приложений не могли напрямую закаливаться из БД.

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