我为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属性未相应设置。为什么呢?
答案 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"];