2011-02-07 6 views
2

Я немного запутался в управлении ролями в веб-приложениях.
Предполагается: пользователь принадлежит к роли, одна роль имеет одно или несколько разрешений, а разрешение может быть: просмотреть страницу options.html.Нечеткое управление пользователями в веб-приложениях

Если роль состоит из разрешений (просмотреть эту страницу, просмотреть эту страницу и т. Д.), Как мы можем проверить, какую страницу разрешено видеть в нашем коде?

Два варианта пересекал мой разум:
а) уровень Роли: Если пользователь является членом thatRole затем показать страницу ...
б) Уровень разрешений: если пользователь имеет permissionToViewThatPage затем показать страницу ...

Если а) это способ, то зачем нам нужны разрешения?
У администратора есть разрешение на просмотр этой страницы, а затем на кого-то приходит и изменяет разрешение.
В нашем коде мы спрашиваем, является ли пользователь членом роли администратора, но мы не проверяем его.

Вопрос:
Как вы управляете ролями/разрешениями пользователей в вашем исходном коде (JSP/JSF, ASP.NET)?

+0

Java _and_ ASP.NET? Во всяком случае, я не уверен, что вижу здесь реальный вопрос. –

ответ

2

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

Лучше всего, чтобы функции на вашей странице нуждались в разрешениях, если они были связаны с одной или несколькими ролями, а затем имеют способ сопоставления ролей с разрешениями.

0

Основное отличие состоит в том, что разрешения назначаются ролям, а роли назначаются конкретным пользователям. Основная идея этой концепции - сделать управление доступом максимально динамичным, не зная реального кода.

1

b). Вы правы, если не собираетесь использовать разрешения, которые вы определили, тогда они вам не нужны. Но, учитывая текущую настройку, вы должны просто разрешить. Лучший способ справиться с проблемой администратора - предоставить полномочия администратора всем разрешениям, а не добавлять отдельную проверку роли для пользователя.