2012-01-26 17 views
2

ASP.NETメンバーシップの説明が必要です。それで私を助けてください。 私は、ASP.NET MCV 3フレームワークを使用しており、LDAPまたはSQLのいずれかを使用してユーザー&の認証管理にASP.NETメンバーシップを使用しようとしています。ASP.NET MVCメンバーシップの役割

私が今まで理解してきたことについては、 ASP.NETのメンバーシップは、次のとおりです。

[ユーザー]は、[役割]または[役割]、[ユーザー]

を持っていますが、私のプロジェクトで私は、より複雑なビジネスロジックを持っています。 ;>だから私は動的に私のMVCコントローラやアクションにタスク/許可を取り消す/割り当てることができます[タスク]

を持っている - 私は、[ユーザー]、[役割]をしている

などの次のレベルにこの階層を必要な場所

私はSQL Providerを使用したメンバーシップを使い始めるつもりで、後でLDAP/ADに切り替える予定です。

私はAzManとNetSqlAzManも調べました。彼らはエラーを解決するために大丈夫だが、その使用法は奇妙に見える。 (ASP.NETメンバーシップのようにきちんとしていない、我々は単にコントローラまたはそのアクションにロール/タスクを割り当てるために、アノテーションを使用することができる場所

ASP.NETメンバーシップは、役割にのみ&なしタスク/操作制限され か。?は? >タスク - - ?役割のための次のレベルの階層持っているため任意の回避策は

があり、私はASP.NETメンバーシップの使用のシンプルさを楽しむことができますし、同じ道路上。>操作を

すべてのヘルプは次のようになり

ありがとう!

答えて

2

ASP.NETのメンバシッププロバイダは、すぐに使用できるロールのみをサポートします。タスクや操作はサポートしていません。ただし、カスタムロールプロバイダを作成して、必要なだけを満たすことは比較的簡単です。

「ロールプロバイダを実装する」のチェックアウトは、http://msdn.microsoft.com/en-us/library/ie/8fw7xh74.aspxに行ってください。サンプルロールプロバイダはhttp://msdn.microsoft.com/en-us/library/ie/tksy7hd7.aspxです。

+0

ありがとうございます。有用と思われる。このカスタムロールプロバイダを今すぐ次のレベルに持ち込んで、テーブル/メソッドを追加してタスク/操作にも対応できますか?これは正しいのですか? –

+0

はい。そのとおりです。必要なものを追加できます。 – Mark

2

ASP.NETメンバーシップは、ロール、タスク、または操作のみをサポートします。

[Authorize(Roles="Administrator")] 
public ViewResult Edit(int id) 
{ 
    return View("Edit"); 
} 

するか、あなたのコードは、IsInRoleメソッドを使用してチェックすることが可能です。:

あなたはそうのように、操作がどのロールに許可されている意味する属性を使用することができます

if (User.IsInRole("Administrator")) 
{ 
    ... 
} 

幸運を!

関連する問題