2011-09-14 16 views
2

私が作成し、それを編集することができ、データを、見ることができるという点で、かなり複雑な承認規則を持っているでしょうASP.NET MVC3アプリケーションのセキュリティフレームワークを研究しています。 などのルール - 私の会社や支店の一部であるクライアントしか見ることができません。 - レコードが作成された日から15日以内にスーパーユーザーの役割を果たす場合、そのレコードの2つのフィールド以外はすべて編集できます。 16日以上経過した後は、2つのフィールドしか編集できません。ASP.NET MVC 3 - セキュリティアーキテクチャの考慮事項

私の最初に考えたのはエンタープライズセキュリティのブロックを使用し、ちょうどカスタマイズ承認者を追加することでしたが、ASP.NETのメンバーシップベースのセキュリティのためのネイティブサポートについての詳細を読んだ後、私は、エンタープライズセキュリティブロックが必要であればそれほどわかりません。私は実際のアプリケーションでフレームワークのどちらも使用していないので、トピックに関するいくつかの共通の知恵を探しています。

+0

これは私にウェブアプリケーションでナットを動かすロジックのようなものです... –

答えて

1

これは複雑なフィールドレベルセキュリティの問題です。すべてがとても慣れているので、それを手助けする実際のフレームワークはありません。あなたができる最善のことは、何らかのルックアップテーブルにこれを抽出し、各フィールドにテーブルのカスタム識別子を割り当て、各セキュリティレベルを示す列のセットを持つことです。次に、フィールドと条件を渡すようにビジネスロジックを構築し、それを許可するかどうかを単に応答します。

は、次に、あなたのインターフェイスに何を意味するか、「許可」を把握する必要があります。無効にしますか?それを隠す?それを無視します?

私はあなたを羨ましくない。

これは半興味深いかもしれません。

http://bartreyserhove.blogspot.com/2008/12/field-level-security-using-aspnet-mvc.html

0

あなただけの直接ここに実際にセキュリティ上の懸念許可規則および編集ルールよりに交差しています。あなたの認証ルールは非常に慣れ親しんでおり、独自のカスタムコードでこれらのルールを処理し、次にこれらの属性を独自のビューモデルに含める必要があると感じています。

イムこれらは非常にカスタム編集規則あるとして、デフォルトではあなたにこれを与える任意のフレームワークを認識していません。これらの主張を呼び出すことができ、ログイン時にWIF(Windows Identity Foundations)などのクレームベースのフレームワークに反するが、CustomerViewModel.AllowAddressEditのようなViewModelで設定したプロパティに基づいてビューを編集できるようにするには、 。 DisplayForまたはEditorForを表示するには、このプロパティをチェックする必要があります。ただし、ポストバック時にこれらの値をチェックして、ユーザーが値を注入してアプリをハッキングしていないことを確認する必要があります。

0

あなたはサイトに基本認証のためのasp.netセキュリティを使用することができ、あなたは基本的な役割のメンバーシップのためにそれを使用することができます。しかし、これらはサイト全体のアクセス許可であるため、ユーザーを組織権限に分類するための独自のロジックが必要になります。

私が過去に行ったことは、基本的な認証情報を処理するためにasp.netメンバシップロジックを使用することですが、ユーザIDを他のパラメータにマップする別の構造をデータベースに保持します、特にデータ駆動型構造のアクセス権が含まれます。

多くのアプリが必要とする、より複雑なメンバーシップ/権限の状況を処理するための、既に優れたソリューションは存在しません。マイクロソフト承認マネージャとその関連API -

1

あなたはのAzManを使用することができます。

ロール、アクション、権限、その他多くの設定可能なオプションが用意されています。

Azmanはこれを保存するためにADを使用します。また、ローカルXMLおよび/または構成ファイルを使用して格納するオプションも提供します。

関連する問題