【问题标题】:Why is the application name not being set for my custom role provider?为什么没有为我的自定义角色提供者设置应用程序名称?
【发布时间】:2012-06-13 00:23:18
【问题描述】:

我已经为 ASP.NET 应用程序实现了一个自定义角色提供程序。我从 System.Web.Security.RoleProvider 派生了我的类并实现了所有抽象方法和属性。我在 web.config 中使用 applicationName 配置我的提供程序,à la:

 <roleManager enabled="true" defaultProvider="CustomRoleProvider">
  <providers>
    <clear/>
    <add name="CustomRoleProvider" type="MvcApplication1.CustomRoleProvider" applicationName="Foo"/>
  </providers>
</roleManager>

但是,我的提供程序的 ApplicationName 属性没有被相应地设置。为什么?

【问题讨论】:

    标签: asp.net roleprovider


    【解决方案1】:

    除了实现 System.Web.Security.RoleProvider 的抽象方法外,还需要重写 Initialize() 方法。 web.config 中的 provider 元素中未被 System.Configuration.ProviderSettings 处理的属性(如 applicationName)通过 Initialize() 传递给自定义角色提供者。将以下内容添加到 Initialize() 的实现中,会将自定义角色提供程序的 ApplicationName 属性设置为 web.config 中 applicationName 属性提供的值:

       if (config["applicationName"] != null)
           ApplicationName = config["applicationName"];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-26
      • 2011-03-09
      • 2020-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多