2011-02-12 54 views
18

当在ASP.NET页面,模块或处理程序中出现HttpContext时,如何获取对当前RoleProvider实例的引用?引用当前RoleProvider实例?

这是在调用IPrincipal.IsInRole(..)方法时用于授权的提供程序。默认情况下,或者来自配置,我的提供者似乎是一个SqlRoleProvider实例,当我运行该应用程序时出现错误。

我想在运行时检查提供程序的类型,以提供关于哪一个实际正在使用的反馈。

回答

29

static Roles class上有一个Provider属性,你可以用它来引用当前提供商。

Roles.Provider 

如果您使用的是自定义RoleProvider,则可以将其强制转换为访问自定义功能。

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

谢谢!这些信息帮助我确定我的角色提供者实际上是'WebMatrix.WebData.SimpleRoleProvider',而不是预期的'System.Web.Security.SqlRoleProvider'。呼!干杯。 – 2011-02-12 04:27:08