3

CQRS パターンを使用する ASP.NET MVC3 でアプリケーションを開発しています。コマンド側は Entity Framework で作成され、エンティティは SQL Server のテーブルにマップされます。クエリ側は SQL ビューの上に構築されます (これも EF を使用します)。

データへのアクセスをどのように管理すればよいですか? たとえば、ドキュメントがあります。ドキュメントはパスワードで保護され、それを知っている人なら誰でもアクセスできるようにすることも、特定のログイン ユーザーのみがアクセスできるようにすることもできます。

アクセスを許可/拒否するロジックをどこにどのように実装する必要がありますか? DocumentViewModel にはどのデータを含める必要がありますか? ユーザーが提供したパスワードと比較するためのパスワードフィールドを含める必要があるので、アクセスを確認し、単一のクエリで表示するデータを取得できますか? または、UI に表示されるフィールドだけを含める必要があるため、別のクエリ (またはストアド プロシージャの呼び出し?) がアクセスのチェックを担当しますか?

アクセス ルールが単なるパスワードのチェックよりも洗練されているとしたらどうでしょうか。これには、すべてのホワイト リスト、ブラック リスト、支払い、送金制限、アカウントの種類などが含まれる可能性があります。一般的に - 非常に遠いもの

SELECT * FROM ReadModelTable WHERE id = @id

これは、「良い」読み取りシナリオの例でよく示されます。

4

1 に答える 1