当在ASP.NET页面,存在HttpContext的模块或处理程序内部时,如何获取对当前RoleProvider实例的引用?
调用IPrincipal.IsInRole(..)方法时,它是用于授权的提供程序。默认情况下,或者从配置中,我的提供程序似乎是SqlRoleProvider实例,当我运行应用程序时出现错误。
我想在运行时检查提供程序的类型,以提供有关实际使用哪个提供程序的反馈。
答案 0 :(得分:30)
static Roles class上有一个Provider属性,您可以使用它来引用当前提供者。
Roles.Provider
如果您使用的是自定义RoleProvider,则可以将其强制转换以访问自定义功能。
((MyCustomRoleProvider)Roles.Provider).AllYourRoleAreBelongToUs();