我已经为ASP.NET应用程序实现了自定义角色提供程序。我从System.Web.Security.RoleProvider派生了我的类,并实现了所有抽象方法和属性。我正在使用web.config中的applicationName配置我的提供者,例如:
<roleManager enabled="true" defaultProvider="CustomRoleProvider">
<providers>
<clear/>
<add name="CustomRoleProvider" type="MvcApplication1.CustomRoleProvider" applicationName="Foo"/>
</providers>
</roleManager>
但是,未相应设置我的提供程序的ApplicationName属性。为什么?
最佳答案
除了从System.Web.Security.RoleProvider实现抽象方法之外,您还需要覆盖Initialize()
方法。 System.Configuration.ProviderSettings未处理的web.config中provider元素中的属性(例如applicationName)通过Initialize()
传递给自定义角色提供程序。将以下内容添加到您的Initialize()
实现中,会将自定义角色提供程序的ApplicationName属性设置为web.config中applicationName属性提供的值:
if (config["applicationName"] != null)
ApplicationName = config["applicationName"];
关于asp.net - 为什么未为我的自定义角色提供程序设置应用程序名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11000737/