2011-01-24 9 views
0

asp.net mvc3を使用しているWebプロジェクトがあります。今クライアントはセキュリティ管理機能を求めています。このプロジェクトのコンテキストを次に示します。asp.net mvc3に基づくWebプロジェクトのカスタムセキュリティ管理についてのアドバイス

  1. フォーム認証を使用する公開Webサイト。
  2. クライアントはセキュリティを自己管理したい(ロール、ユーザー、リソースの処理を含む)。
  3. ユーザーはプロジェクトのドメインモデルです。
  4. アクセス制御の細分性は、少なくともアクションレベル(ユーザーが許可されていない操作を行うと、許可されていないページをユーザーに戻す)に移行する必要があります。ただし、ユーザーの権限に基づいて表示内容を変更することが推奨されます(表示ページでは、承認された要素のみが動的に表示されます)。

私はasp.net mvcをよく使っていません。私はbuild-inのmemberproviderとroleproviderがこの要件のためにOKかどうか分からない。しかし、私は完全にコントロールするために(リソースカテゴリ、アクション、ロール、グループなど)のための自分のモデルプロバイダを構築することを好む。しかし、キャッシュやパフォーマンスなどのような他の要因が懸念されるようです。

この機能を実装する方法と、それを自分のプロジェクトに適用する方法についてのアドバイスをいただけますか?いくつかのサンプルプロジェクトを改善しました。

どうもありがとう

答えて

1

私はかなり取るアプローチは、アクセスの種類との種類のための一連のビット値を表すためにキーのシリーズがあるアクセス制御リストに沸きますアクション(読み取り、挿入、変更、および削除)。

サイト全体が、ajaxおよびjsonを使用するRESTスタイルAPIによって作成されます。機能の各部分は一連の許可テストでラップされています(私はアクセス制御リストをキャッシュします)。

例シナリオ: ユーザー(管理者)がユーザーの一覧にアクセスしています。

これが実行されているコードのために評価されるべき以下のアクセスキーとアクションのために呼び出します。

  • ページのロード:
    • "/ユーザ/リスト"
      • 読む
  • REST APIアクセス:
    • "/ユーザ/所有者"
      • 読む
    • "/ユーザ/ NotOwner"
      • 読む

明らかに、これらの条件を比較していますユーザーの割り当てられた役割にログインし、アクセス制御アクセス許可を関連付けるその役割にd。

データベースにアクセス権とアクセス権が格納されているため、ユーザーはどのアクセス項目とアクションがどの役割に割り当てられているかを変更できます。

あなたはこれらの関連付けを変更にユーザーに能力を与えるつもりだのでそれは各アクセスコントロールの項目について説明を追加にとって非常に有益であろう。

幸運を祈る!

+0

ありがとうございました2、説明のアドバイスが本当に役に立ちます。だからあなたのアプローチは行動ベースの権限だと思いますか?動的ページコンテンツのレンダリングにこの認可コントロールを使用するにはどうすればよいですか? –

関連する問題