最終的に、解決策は単純明快で非常に簡単でしたが、見つけるのは困難でした。
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]));
}
これにより、カスタム メンバーシップとロール プロバイダーがディクショナリに機能なしで追加されます。つまり、ユーザーとロールのすべての作成/編集が無効になります。
次のアクションを使用できます: 更新、作成、削除。Update と Create のみが必要な場合は、0 を次のように置き換えます。
ProviderCapabilities.Action.Update | ProviderCapabilities.Action.Create
Action 列挙には、属性Flagsがあります。