Ссылка на текущий экземпляр RoleProvider? - PullRequest
19 голосов
/ 12 февраля 2011

Когда внутри страницы ASP.NET, модуля или обработчика присутствует HttpContext , как мне получить ссылку на текущий экземпляр RoleProvider ?

Это провайдер, используемый для авторизации при вызове метода IPrincipal.IsInRole (..) .По умолчанию или из конфигурации мой провайдер выглядит как экземпляр SqlRoleProvider из-за ошибки, возникающей при запуске приложения.

Я хочу проверить тип провайдера во время выполнения, чтобыпредоставить отзыв о том, какой из них фактически используется.

1 Ответ

30 голосов
/ 12 февраля 2011

Класс статических ролей имеет свойство Provider, которое можно использовать для ссылки на текущего поставщика.

Roles.Provider

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

((MyCustomRoleProvider)Roles.Provider).AllYourRoleAreBelongToUs();
...