ASP.NET: собственная реализация IsInRole - PullRequest
1 голос
/ 18 января 2012

Извините за мой английский.

Возможно ли переопределить логику IsInRole в asp.net? Я использую свои собственные таблицы ролей в базе данных и хотел бы знать, как использовать собственную логику.

Что-то вроде наследования от PrincipialBase. Может быть, вы знаете несколько способов?

Ответы [ 3 ]

3 голосов
/ 18 января 2012

Я бы использовал RoleProvider, только если вы используете другие аспекты проверки подлинности и авторизации ASP.NET. Однако, если у вас есть собственная база данных для хранения информации о ролях и уже есть пользовательский интерфейс для управления ролями пользователей, вы можете просто создать GenericPrincipal с вашими ролями и заменить им HttpContext.Current.User во время PostAuthenticateRequest (для ASP.NET ).

MVC немного отличается в зависимости от того, как вы управляете авторизацией. Вот связанный вопрос.

Управление ролями приложений в asp.net mvc (Как)?

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

2 голосов
/ 18 января 2012

Тогда вам нужно реализовать пользовательский RoleProvider . Вот руководство по реализации RoleProvider .

0 голосов
/ 18 января 2012

Microsoft выпустила исходный код для поставщиков по умолчанию (членство, роль и т. Д.). Это также отличная ссылка при реализации вашего собственного провайдера. Однажды, когда я реализовал пользовательский поставщик ролей, он мне очень помог.

...