0

私は自分のアーキテクチャで認証用のパスワードをハッシュするのに最適な場所を見つけようとしています。これが私のリクエストフローです。

MVC3->MembershipProvider->AccountService->UserRepository->NHibernate->Database

私はサービスレベルとリポジトリレベルでのハッシュの間で引き裂かれています。私は両方の利点を見ていますが、誰かがこれを処理するための標準的な場所を知っていますか?ハッシュパスワードをデータベースに保存しています。

4

2 に答える 2

7

DDDはトップレベルのアーキテクチャではありません。制限されたコンテキスト内で適用します。システムには多くの制限されたコンテキストが存在する可能性があり、それらのいくつかはDDDであり、いくつかはそうではありません。

コアドメインが何であれ、認証はそれに属していません。これはせいぜいジェネリックドメインであり、すでに解決されている問題です。これはアプリケーション層にのみ存在する必要があります。これは、GUIがドメインへのアクセスを保護する方法です。派手なDDDビルディングブロックはありません。リポジトリもサービスもありません。メンバーシッププロバイダーにNHibernateと直接、または生のADO.NETと通信させるだけです。または、カスタムのものは必要ないかもしれません。SqlMembershipProviderはあなたのニーズに合いませんか?

于 2012-10-05T08:15:15.380 に答える
-2

厳密にDDD(ドメイン駆動設計)について話している場合、パスワードハッシュはユーザー(ドメインエンティティまたは集約ルート)によって処理される必要があります。ユーザー入力(パスワード)をコントローラーからAccountServiceに渡し、AccountServiceに新しいユーザーをロード/作成させ、パスワードをハッシュするユーザーのメソッドを呼び出します。例が必要な場合は、次のURLを参照してください:MVC3アプリのユーザーの例

于 2012-08-03T19:45:27.950 に答える