21

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

它是调用IPrincipal.IsInRole(..)方法时用于授权的提供程序。默认情况下,或者从配置中,我的提供者似乎是一个SqlRoleProvider实例,因为我在运行应用程序时给出了一个错误。

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

4

1 回答 1

31

静态 Roles 类上有一个 Provider 属性,您可以使用它来引用当前的提供者。

Roles.Provider

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

((MyCustomRoleProvider)Roles.Provider).AllYourRoleAreBelongToUs();
于 2011-02-12T04:09:44.587 回答