1

カスタムの詳細なセキュリティ/プライバシー設定を必要とするプロジェクトに取り組んでいます。基本的に、クエリを実行するユーザーに基づいてデータへのアクセスを制限できる必要があります。簡単ですよね?ここでいくつかの落とし穴があります..

  1. ユーザーは users テーブルに格納する必要があります。このアプリケーションでは、Windows ユーザー アカウント、SQL サーバー ユーザー、または SQL サーバー ロールを作成することはできません。
  2. セキュリティ基準は、ユーザーの場所、給与等級、専門分野など、さまざまな情報源によって定義する必要があります。

現在、SQL の "where" 句を生成し、実行前にすべてのクエリの末尾に追加することで、これを実装しています。これにより、Entity Framework などの新しいテクノロジを活用することが制限され、独自の他の制限やパフォーマンスの問題も伴います。

どんな助けやアイデアも大歓迎です。追加の説明が必要な場合はお知らせください。

ありがとう!ジェイソン

4

1 に答える 1

1

Entity Framework は引き続き使用できます。EF でこれを行うには、いくつかの方法があります。

  • このWHEREのように、句を挿入するカスタム ラッピング プロバイダーを作成します。

  • IQueryablepre Where()-d データを含むのみを公開します (ただし、リレーションには注意してください)

  • 現在のユーザーがエンティティ ctor にアクセスできない場合は、エンティティ ctor で例外をスローします (良い考えではないかもしれません)。

于 2011-11-06T00:16:15.713 に答える