ASP.NET MVCアプリケーションの個々のレコードのセキュリティ(取得および変更)を処理するすべての人は何ですか?このアプリケーションには、Webユーザーインターフェイスとは完全に別個のサービス/ビジネスレイヤーとデータアクセスレイヤーがあります。私は既にメンバーシップとロールのプロバイダを使用してアプリケーションの特定の領域や機能に対する認証と承認を処理していますが、今は個別のレコードを保護する必要があります。ASP.NET MVCアプリケーションでレコード/エンティティレベルのセキュリティを処理する
たとえば、Bobが自分のFooBarレコードを作成および編集できるとします。他のユーザーがBobのレコードを表示または編集できないようにしたい。私は、URLの操作やプログラミングミスを防ぎたい。また、Bobが他のユーザーとFooBarsを共有できるようにして、自分のレコードを表示することはできますが編集することはできません。
- を直接検索し、修正クエリで、データアクセス層でセキュリティチェックを行います。
は、私が出ているいくつかのアプローチがあります。
- ビジネスロジックを進める前に、追加のセキュリティクエリを実行して、サービスレイヤのセキュリティをチェックしてください。
- UIとサービスレイヤの間に存在するセキュリティレイヤを作成します。 UIは、すべての要求をSecurityレイヤーを通して行います。
- アスペクト指向プログラミング(AOP)を使用します。セキュリティアスペクトを作成し、セキュリティ属性を使用してサービスレイヤメソッドを修飾します。
以前のプロジェクトのデータアクセスレイヤー(クエリ内)でセキュリティを行いましたが、それはいつも混乱になります。私は他の人たちが何をしているのか、そしてあなたを助けるために使っているフレームワーク(AOPフレームワーク)をお知りになりたいと思います。