2

ASP.NetMVC4アプリケーションでデータレベルの承認フィルターを探していました。
データアクセスにはEntityFrameworkを使用しています。

アプリケーションはすべてのデータを表示する必要がありますが、ユーザーの役割に基づいてテーブル内の特定のフィールドへのアクセスを制限する必要があります。

例:TASKテーブル{int Id、string TaskName、DateTime StartDate、DateTime EndDate}

このデータ全体がすべてのユーザーに表示され、ユーザーはフィールドを編集することもできます。ただし、次のように編集オプションを制限する必要があります。
役割管理者はすべてのフィールドを編集できます
役割マネージャーはタスク名を編集できますが、開始日と終了日は編集
できません役割ユーザーはどのフィールドも編集できません

これらの編集はすべて、TaskControllerの編集アクションを呼び出します。

アプリケーションに機能を実装するにはどうすればよいですか。

4

4 に答える 4

1

Postsharpを試してみてください。PostSharpを使用すると、コンパイル時にボイラープレートコードを挿入するためのカスタム属性を設計できます。あなたの例のようなシナリオにそれを使用することが可能であるはずです。例外処理、ロギング、キャッシング、およびセキュリティのために使用しました。これは、任意のレイヤーまたはフレームワークに適用できます。

次の図の例の「フィールドとプロパティの保護」を参照してください。

http://www.sharpcrafters.com/solutions/authorization

それが役に立てば幸い。

于 2012-10-29T01:11:09.913 に答える
1

これはEF、別のORMではありませんが、それがどのように行われるかを確認するのに役立つ可能性があります-完全なソースコードはここにあります。

ここでは、自動化サブシステムについて説明します

行レベル、最大列の粒度、役割ベースの承認など、必要な処理を実行します。

于 2013-05-04T09:10:56.943 に答える
0

あなたが求めているのは、スマートで、メソッドレベルだけでなくプロパティレベルでの承認を含む真の「ビジネス」オブジェクトのように聞こえます。CSLA.NETを使用して、スマートオブジェクトを使用してビジネスオブジェクトモデルを作成することをお勧めします。これにより、その機能と他の多くの機能が提供されます。

于 2014-07-15T17:08:28.750 に答える
0

このデータ全体がすべてのユーザーに表示され、ユーザーはフィールドを編集することもできます。ただし、編集オプションを制限する必要があります

タスクコントローラの単一の編集アクションの代わりに

  1. 編集が許可されている一意のフィールドセットごとに特定のアクションを作成します

    • Edit(TaskName, StartDate, EndDate)管理者向け
    • Edit(TaskName)マネージャー向け
    • フィールドを変更することは許可されていないEditため、ユーザーに対するアクションはありません
  2. アクションごとに承認を使用する

于 2016-02-21T12:52:29.520 に答える