2012-04-16 13 views
5

オーチャードにカスタムメンバーシップのプロバイダーを統合するための好ましい方法は何ですか?オーチャードCMSのカスタムメンバー

私は(Orchard.Usersから)新しいIMembershipServiceを実装し、IUserService周りのポストのカップルを見ていると思えるようにOpenAuthenticationなど、そこ他のモジュールはそれ以上たくさんを行うには(まだUserPartを使用していますか? ?)。

既にASP.NETメンバーシッププロバイダが書かれていますが、これをそのまま統合することはできますか?

答えて

7

IMembershipServiceのカスタム実装は、デフォルトのOrchard.Usersモジュールをまったく使用したくない場合に行く方法です。依然としてフォーム認証を行いたいが、UserPartではなく、authデータをどこか別の場所に保存すると便利です。

完全にカスタムの認証方式を作成したい場合は、フォームベースのデフォルト(username + password)を上書きし、IAuthenticationServiceを上書きします。一般的に言えばそう

、:

  • IMembershipProvider

    は、認証データの管理(ユーザーを取得/作成)
  • IAuthenticationProviderが認証を行っについてですについてです(サインイン/アウト/取得現在のユーザーなど)

必要に応じて、どちらか一方または両方を無効にすることができます。

OpenAuthのような共通認証モジュールは、実際にそれを置き換えずに既存のデフォルト認証オプションを追加します。IIRC。

+3

個別のデータストアを使用してIMembershipServiceを実装する場合、返されるIUserのContentItemプロパティはどこから来ますか? – Oll

+0

うん、本当に良い質問。 'IUser'はコンテンツ項目である必要がありますので、少し複雑ですが、ちょっと複雑です。パーツのない単一のコンテンツアイテム(例えば、「ユーザ」)を作成し、それをすべての「IUser」のための「ContentItem」プロパティの値として入れることができます。あなたのシナリオでは、他の部品をユーザーに取り付ける必要がない場合、これは完全に機能します。 –

+0

また、たとえばあなたもできます。現在のサイトのコンテンツアイテムをそこに置くので、何も作成する必要はありません。現在のサイトは 'IOrchardServices.WorkContext.CurrentSite'を介してアクセス可能です。 –

関連する問題