参考当前的RoleProvider实例?

21

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

这是在调用IPrincipal.IsInRole(..)方法时用于授权的提供程序。从默认值或配置文件中看,我的提供程序似乎是一个SqlRoleProvider实例,并且当应用程序运行时会给出一个错误提示。

我想在运行时检查提供程序的类型,以便提供关于实际使用的提供程序的反馈信息。

1个回答

32

Roles类是一个静态类,它具有一个Provider属性,可以用来引用当前的提供程序。

Roles.Provider

如果您使用自定义的RoleProvider,您可以对其进行强制转换以访问自定义功能。

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

谢谢!那些信息帮助我确定我的角色提供程序实际上是“WebMatrix.WebData.SimpleRoleProvider”,而不是预期的“System.Web.Security.SqlRoleProvider”。呼!干杯。 - John K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接