Мне нужно знать, как реализовать общую безопасность для приложения на С#. Какие варианты у меня есть в этом отношении? Я бы предпочел использовать существующий каркас, если он отвечает моим потребностям - я не хочу заново изобретать колесо.
Мои требования следующие:
- обычное имя пользователя/пароль аутентификации
- управление пользователями - назначать разрешения пользователям
- управление ролями - назначение пользователей ролям, назначение разрешений ролям
- авторизация пользователей на основе их имени пользователя и роли
Я ищу бесплатную инфраструктуру/библиотеку с открытым исходным кодом, которая была проверена временем и используется сообществом .Net.
Мое приложение использует клиент-серверный подход, когда сервер работает как служба Windows, подключаясь к базе данных SQL Server. Связь между клиентом и сервером будет осуществляться через WCF.
Еще одна важная вещь заключается в том, что мне нужно иметь возможность назначать определенные права пользователей или ролей для просмотра/обновления/удаления конкретной сущности, будь то Клиент, Продукт или т.д. Например, Джек может просматривать определенную 3 из 10 клиенты, но только обновить данные клиентов Microsoft, Yahoo и Google, и могут только удалить Yahoo.