2011-06-22 7 views
2

伝統的なASP.NETアプリケーション内でカスタム認証を実装するさまざまなテクニックをすべて手に入れようとしています。カスタムプロバイダモデルを作成してMembership APIを使用する方が望ましいと思われます。カスタムプリンシパルオブジェクトとASP.NETのメンバーシップAPI

ロールと個々のアクセス許可の組み合わせに基づいてカスタムロール認可モデルを実装することに興味があります(ロールはアクセス許可で構成され、ユーザーは複数のロールまたは特定のアクセス許可を持つことができます)

本格的なロールプロバイダを作成してカスタムプリンシパルオブジェクトを実装し、すべての認証ロジックをIsInRoleメソッドのオーバーロードで実装する利点または欠点は何ですか?カスタムプリンシパルは非推奨のテクニックで、1.1に戻っていますか?一般的に、カスタムプリンシパルを実装するときはいつですか?

私たちはユーザーストアとしてActive Directoryを使用しています。サードパーティのコンサルティング会社は、XMLファイルに含まれている承認ロジックとルールを含むTERRIBLEカスタムロールベースの承認モジュールを実装しており、各ユーザーのセッションオブジェクトに渡され、承認のためにASP.NETインフラストラクチャと結びついていません。

私はこのためのベストプラクティスがどうなるか知りたい

答えて

0

私はasp.netメンバーシップとロールプロバイダのアーキテクチャに固執することをお勧めします。それはよく統合され、良い考え方のシステムです。

別のアカウントストア、次にasp.netメンバーシップまたはアクティブディレクトリを使用する必要がある場合は、カスタムメンバーシップまたはロールプロバイダをいつでも実装できます。これは難しいことではありません。

カスタムのサードパーティシステムをカスタムロールプロバイダにラップすることは可能ですが、特定のクラスで提供されていない特別なニーズがある場合はカスタムになります。

this video may be interesting

+0

プロバイダモデルにフックするのが最も堅牢なソリューションであると私は同意します。 その場合、カスタムプリンシパルオブジェクトはいつ使用されますか?ロールプロバイダと機能的な意図が重複しているように見えますが、明らかにより完全なフィーチャセットが指定されています。 – manning18

+1

@ manning18あなたはこれに答えを見つけましたか? –

+0

残念ながら、誰も私に2つのアプローチの長所と短所をはっきりと説明し明確にしている決定的な答えを私に与えてくれませんでした。最終的には、より柔軟なメンテナンスが可能で、より幅広いフィーチャセット/フックを実装するため、カスタムロールプロバイダを選択しました。 – manning18

関連する問題