最后,解决方案很简单,很容易,但很难找到。
Episerver 使用一个字典来存储提供程序的功能,并且默认添加了 SqlMembershipProvider 和 WindowsMembershipProvider 等默认提供程序。字典的键是提供者类型(Episerver 6)。
添加新条目的方法是公开的,因此我们只需将以下代码添加到 Global.asax.cs。
protected void Application_Start(object sender, EventArgs e)
{
RegisterCapabilitiesOnMembershipProviders();
}
private static void RegisterCapabilitiesOnMembershipProviders()
{
ProviderCapabilities.AddProvider(typeof(CustomActiveDirectoryMembershipProvider), new ProviderCapabilitySettings(0,new string[0]));
ProviderCapabilities.AddProvider(typeof(CustomActiveDirectoryRoleProvider), new ProviderCapabilitySettings(0, new string[0]));
}
这会将我们的自定义成员资格和角色提供者添加到没有任何功能的字典中,这意味着所有用户和角色的创建/编辑都被禁用。
可以使用以下操作:更新、创建、删除。如果您只想更新和创建,请将 0 替换为:
ProviderCapabilities.Action.Update | ProviderCapabilities.Action.Create
Action 枚举具有属性Flags。