【问题标题】:Reference current RoleProvider instance?引用当前 RoleProvider 实例?
【发布时间】:2011-02-12 12:29:35
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# asp.net roleprovider


    【解决方案1】:

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

    Roles.Provider
    

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

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

    【讨论】:

    • 谢谢!该信息帮助我确定我的角色提供者实际上是“WebMatrix.WebData.SimpleRoleProvider”,而不是预期的“System.Web.Security.SqlRoleProvider”。哇!干杯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多