2009-03-29 12 views
7

MembershipProviderクラスを実装する必要がある場合は、私自身が必要とするすべてのサービスを実装する必要があります。MembershipProvider派生クラスを実装することによって得られるメリットは、自分のMySecurityクラスを作成するだけです。ASP.NETのカスタムMembershipProviderの利点は何ですか?

答えて

6

を作成するのは難しいです。と表示されているものを簡単に作成できるからです。と表示されます。デプロイメントの1年後に、システムが6ヶ月前にクラックされていたことを最終的に発見した状況では、自分自身を見つけたくありません。

MembershipProviderモデルを使用してシステムを構築すると、正しく実装されるのに適したスケルトンを与えることができます。一連の方法を正確に記入するだけで済みます。また、適切な方法で適切な方法を使用していることを確認するために、提供される高度なアーキテクチャに頼ることができます。

個々のメソッド実装の完了は比較的簡単です。あなたはそれらをあなたの単体テストに入れて、彼らが想定していることをやっているという自信を持っています。

正しい言い方で認証トークンをチェックするかどうかを心配する必要はありません。メンバーシッププロバイダーを呼び出すASP.Netの部分は、いつ行うべきかを知っています。あなたがしなければならないことは、小切手を正しく実装することであり、通常は単純な比較になります。

さらに、最初から開始する必要はありません。既存のプロバイダから継承し、まだ提供していない機能だけを追加するオプションが必要です。

+0

はい、しかし、私はメソッドのために提供しなければならないコードの中で認証システムを正しく取得する詳細はありませんか?私は完全に理解しています。既存のSqlMembershipProviderを_usingすることの利点です。 Access one、私はまだ自分自身を_all_コードする必要があります。 – ProfK

+0

あなた自身でコードを書く必要はありません。ASP.Netには、信頼できるプロバイダを呼び出すコードがあり、継承したり拡張したり、既存のプロバイダを継承することができます。説明する私の答えを更新しました。 –

+0

@Joel、ありがとう。私はおそらくより大きな画像をもう少し見て、どこでどのように私のプロバイダが使用されるかを見なければならないでしょう。私のフォームで明示的にそれを呼び出すのであれば、基本クラスメソッドのほとんどが抽象と空です。 – ProfK

0

まあ、依存しています...私は関数の概念を追加しなければならないので、すべての役割がそれらに関連付けられた関数を持つように、非常に便利でした。私はAddFunctionToRoleメソッドが含まれて自分のメンバーシップとRoleProviderクラスを実装している場合は

... IsFunctionAssignedToUser方法...などなど

そのhere

1

に少しより多くの情報書き込みの主な利点独自のMembershipProviderクラスは、ASP.NETによってファーストクラスのコンポーネントとみなされ、認証と承認に標準のインターフェイスを使用でき、後で別のプロバイダを使用する場合にのみ設定ファイルを変更する必要があります。

2

デフォルトのメンバーシッププロバイダのいずれかと「少し」異なるものが必要な場合は、組み込みプロバイダの1つまたはより優れたサードパーティプロバイダの1つから継承することを検討し、必要な機能を変更するか、変更する機能を上書きします。

1

技術的には、移植性をある程度向上させる必要があります。既存のモデルを使用することで、プロバイダを他のWebアプリケーションにドロップして、わずかな労力でメンバーシップシステムを置き換えることができます。

残念ながら、メンバーシップ/プロフィールに関して自分自身のやり方をしているような第三者の数はかなり印象的で、むしろ落ち込んでいます。その上に。

メンバーシッププロバイダモデルを使用することで、メンバーシップを使用する他のすべてのコントロールが、カスタムバージョンのメンバーシップを作成することなく、「うまく動作します」(つまり、Login、LoginStatus、LoginNameなど)

関連する問題