2009-06-14 18 views
1

私はちょうどRPXサードパーティ連携アイデンティティシステムを統合しているにASP.NET MVCアプリケーションを持っています。統合はうまくいきましたが、私はASP.NETレベルで何をするのか、頭を悩ませています。サードパーティ認証をASP.NETに統合するには、カスタムメンバーシッププロバイダが必要ですか?

私はASP.NETに慣れていません(私はMVCでそれを学んでいます)、メンバーシップとプロファイルデータのプロバイダーモデルについて少しは知っていますが、それは信じられないほど複雑です)。私が苦労している特定のことは、データベースに対するユーザーの永続性です。私は今まで標準でSqlMembershipProviderの実装を使用してきましたが、うまくいきました。ただし、電子メールの検証(ユーザーの電子メールアドレスがRPXの結果によって未確認である場合)のためにデータベースに検証コードを格納してチェックし、返されたデータを永続させるなどの作業をしたいと考えています。電子メールアドレスなどの認証には必須のものもあれば、ユーザーの年齢、性別などのプロファイル情報だけのものもあります。 ASP.NETデータベースで

、私はNHibernateは経由と相互作用する他のアプリケーション固有のテーブルの束を持っています。 ASP.NETのメンバーシップ/プロフィールスタッフの私の理解では、それが永続性を処理し、私はこの進行を取得するためにNHibernateのと何もする必要はありませんということです。

私の目的はにStackOverflowのに似ているようにサインオン経験のためですが、(例えば、電子メールの確認など)いくつかの余分なビットを持ちます。私はこれを行うべきフルでカスタムプロバイダを構築する必要がある、または私は効果的な方法で私の意志にデフォルトSqlMembershipProviderを曲げることができますか?

[また、このようなアプリケーションでのパスワードについて、my other questionを参照してください。]

+1

1! w00! –

答えて

2

私は、私がする必要があるメソッドをオーバーライドし、ちょうどSqlMembershipProviderから継承する新しいプロバイダクラスを作成することにより、過去に同様の作業を行ってきました。

基本メソッド実装を呼び出して、ほとんどの作業を最初に実行してから、派生クラスで必要な追加ロジックを実行できます。プロバイダを最初から構築することは、多くの作業であり、最後の手段にすぎません。

aspnet_Membershipのキー参照を使用してデータベースに新しいテーブルを追加し、派生したプロバイダメソッドから呼び出す独自のストアドプロシージャを追加して、この新しいテーブルに必要なものを実行できます。これは、メンバーシップスキーマに列を追加するよりも優れています。カスタムスキーマを分離した状態に保ちます。

また、SqlMembershipProviderクラスをオーバーライドする必要があるかどうかを調べる必要がありますが、このアプローチは、説明した内容に基づいて機能すると思います。 MVCで初めてASP.NETを学ぶための

+0

コメントをいただきありがとうございます。これは、完全にカスタムのプロバイダを実装するよりもはるかに良い計画のようです。関連する質問について考えていますか? – alastairs

関連する問題