Доброго времени суток всем.
У меня возникла необходимость реализовать примерно такое: безопасный вызов методов в приложении в зависимости от того, как пользователь авторизовался.
То есть: есть БД, где хранятся данные о пользователях, ролях, разрешениях (

).
Есть приложение, которое при старте вызывает форму авторизации — просит ввести логин и пароль. После ввода данных выполняется проверка и, если пользователь не найден в БД, выводится ошибка, в ином случае загружается приложение дальше.
Вот тут и начинается самый интерес. Приложение должно загрузить и отобразить нужные контролы, дать возможность вызывать методы, в зависимости от того какой пользователь вошел. То есть, как пример, если администратор, то должно быть доступно все, если пользователь, то частично.
Названия ролей берутся из БД, могут меняться, как и правила.
Также должна быть возможность из-под пользователей с ролью "администратора" редактировать список пользователей, добавляя, удаляя новых, создавая/удаляя правила и связывание правил с пользователями/ролями, указывая доступность функционала приложения конкретному пользователю или ролям.
Подскажите как можно реализовать данное, от чего отталкиваться, есть ли какие-то стандартные подходы.
Разработка приложения — на С#.
05.12.11 13:18: Перенесено модератором из '.NET' — kochetkov.vladimir