Дизайн разрешений - PullRequest
       6

Дизайн разрешений

7 голосов
/ 08 января 2010

У меня есть приложение с содержимым, которое необходимо настроить для разрешений (т. Е. Участник / не участник)

У меня есть настройки ролей / аутентификации, это не моя проблема. Мой вопрос в основном спрашивает, как лучше хранить разрешения для каждого объекта. По сути, есть роли «Гость» и «Участник», а также простые разрешения «Разрешить» «Запретить» для каждого объекта.

Есть идеи? Программа написана на ASP.NET MVC с использованием C #, LINQ и MS-SQL 2005.

1 Ответ

7 голосов
/ 09 января 2010

Если вы хотите защитить активы (файлы, строки базы данных, доменные объекты, документы и т. Д.) Вместо приложения функции или пользовательские способности , роль безопасность не очень подходит.

Лучшая модель - использовать Списки контроля доступа (ACL), как вы знаете из NTFS. Вы почти сказали это сами, потому что вам нужно назначить определенные разрешения для каждого объекта для каждого пользователя или роли. Вот что делает ACL.

Если вам нужно защитить объекты, которые в конечном итоге являются строками в SQL Server, вам необходимо определить пользовательские таблицы для ваших списков ACL, поскольку SQL Server не поддерживает разрешения на уровне строк.

На основе данных в этих списках ACL необходимо выполнить необходимые проверки безопасности в ваших компонентах доступа к данным.

Вот несколько ссылок на соответствующие ответы SO:

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