为什么没有为我的自定义角色提供程序设置应用程序名称?

时间:2012-06-12 16:23:17

标签: asp.net roleprovider

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

中使用applicationName配置我的提供程序
 <roleManager enabled="true" defaultProvider="CustomRoleProvider">
  <providers>
    <clear/>
    <add name="CustomRoleProvider" type="MvcApplication1.CustomRoleProvider" applicationName="Foo"/>
  </providers>
</roleManager>

但是,我的提供程序的ApplicationName属性未相应设置。为什么呢?

1 个答案:

答案 0 :(得分:7)

除了从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"];
相关问题