私は率直に言ってエンティティレベルの認証の要件があります。私はこのパーミッション構造についていくつかの指針を得ることを望んでいます。どのように.NET 4.5で実装するのか、それを改善する方法があるかどうかを知りたいと思っています。階層データスキームのエンティティレベルのアクセス制御
ここでは、行く:
私は次のように構造化されたデータのセットを持っている:
Fleet
がゼロ以上のコレクションですCars
。Fleet
を含むことができ、他の
Fleets
艦隊は後に再編成し、組織的な目的のために周りに移動することができます。
私はこれらの事業体に関連するシステムの権限を持ついくつかの役割があります。
- 所有者を:艦隊
- マネージャーから車を追加または削除できます:車 にドライバを割り当て
- ドライバ:単純に車を運転することが許可されています
- メカニックは:
車を修正するために許可されている認可ロジックは、1つまたは複数の役割をFleet
またはCar
のいずれかへのアクセスを許可するシステムでUser
することができます。
はここで説明するためにいくつかのシナリオです:
- 私は
Driver
の役割を持つFleet
#5にUser
ジムのアクセス権を付与した場合、彼はフリート#2の下で任意の車を運転することが許可されています。結果として得られたアクセス許可により、彼は#4,5,6車を運転することができます - Mauraに機械のように
Car #1
へのアクセスを許可すれば、得られた許可によって彼女は#1車だけを修理できます。私は役割Owner
とMechanic
とフリート#2へのユーザーサラのアクセス権を付与した場合 - は、彼女は、彼女が車に#1を修正するために許可されている#2艦隊、4、5 とに車を追加および削除することが許可されています2,3,4,5,6。
- 私は
Driver
としてジェレミー艦隊#6にOwner
ととして艦隊#1へのアクセスをユーザーを付与すると、結果の権限は、彼はすべての艦隊とドライブ車#7に車を追加および削除することができます8.彼は、#7と8
このエンティティレベルの許可に良い方法は何である以外、他の車を運転することはできませんか?
重要な場合は、ASP.net Boilerplateの上に構築されたEF6コードファーストで.NET 4.5.1を使用しています。