2010-12-13 4 views
2

Я разрабатываю настольное приложение и хотел бы заблокировать определенные части для определенных пользователей - администраторов, гостей, пользователей и т. Д. Какие шаблоны проектирования существуют для реализации такой разрешающей системы на рабочем столе? Я могу думать только о трех, но я не знаю, что они назвали (или, если они есть),Security Permissions Model

  1. 1) Каждое действие выполняет свою собственную проверку безопасности, запрашивая сеанса или базу данных для соответствующих права доступа пользователя (общие среди простых веб-приложений)
  2. Каждых проверяют действия с централизованной permissioning системы говоря: «есть ли у пользователя х разрешения», который возвращают некоторый статус
  3. Перед действия даже попытки, он перехватывается диспетчером ее, которая выполняет некоторый поиск действия с применимым разрешением и разрешениями пользователя и предотвращает действие даже начиная, когда это не разрешено.

ответ

0

Я думаю, что вы искали RBAC (управление доступом на основе роли). Я думаю, что нет четкой разницы между концепцией контроля доступа в настольном приложении и контролем доступа в веб-приложении. Разница заключается только в реализации. Возможно, вам захочется проверить Spring Rich Client Platform, которые интегрированы в Spring Security. Вне Spring Security, дизайнерские модели RBAC, что я мог вспомнить, являются:

  1. Каждый пользователь может быть непосредственно связан с одной или нескольких ролей
  2. Каждая роль имеет один или более разрешение
  3. Каждый пользователь может принадлежат к одной или нескольких групп
  4. Каждая группа имеет один или несколько ролей

Другие модели, которые могут представлять интерес ACL (списки контроля доступа), что мы привыкли в Wi ndows системы на основе:

  1. Каждый объект имеет ACL, который показывает, какой пользователь или какой группе был предоставлен доступ к объекту
  2. Объект ребенок наследует родителя ACL
+0

Это не совсем то, что я получал в, но это приличная дополнение к моделям, которые я перечислил выше. – Dlongnecker