0

最近のWebプロジェクトでは、Active Directoryのカスタムメンバーシップ/ロールプロバイダを実装する必要がありました。これらのプロバイダを作成して使用する上で実際の問題はありませんでしたが、Episerverに問題が発生しました。CustomiserhipProviderでEpiserverのユーザー/ロールの作成/編集/削除を無効にする

システム内でのユーザー作成が複雑なため、Episerverの管理インターフェース内からの作成/編集を望みませんでした。 WindowsMembershipProviderのためにこれが行われていることはわかっていますが、ページはまだ存在しますが、フィールドは無効になっていて、作成/編集がこのプロバイダでサポートされていないことを知らせる情報テキストがあります。それは画像のように荒れています。

enter image description here

そこで質問は、我々のカスタムプロバイダでこれを実現しますどのようにでしょうか?

答えて

1

最終的には解決策は簡単で簡単でしたが、見つけるのは難しかったです。

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 

アクションの列挙型属性に国旗を持っています。

関連する問題