2012-01-27 32 views
2

Windows認証でASP.NET MVC3イントラネットアプリケーションを作成しています。私はドメインユーザーにこのアプリケーションを使用させたいだけです。ドメインユーザーが認証されると(Active Directory)、ユーザー(ADユーザー名を含む)、ロール&、SQL Serverのユーザーロールテーブル承認を作成する予定です。ASP.NET MVC3でWindows認証でカスタムロールベースの認証を使用する方法は?

ユーザが(コントローラ/アクションにアクセスするための)いくつかの権限セットを持つロールの一部である場合、そのロールのユーザのみがそれらを実行/表示できるようにする必要があります。

例:アクション/ Locations/Createがある場合、その実行を許可されているロールはそのロールのみを実行できます。

誰かが私にいくつかのポインタを与えることができますか?カスタムアクションフィルタを作成し、フィルタを適用するアクションメソッドにフィルタ属性を使用する必要がありますか?

答えて

0

ASP.NET MVCビューへのアクセスを制限するには、ビューをレンダリングするアクションメソッドへのアクセスを制限します。これを達成するために、MVC フレームワークはAuthorizeAttributeクラスを提供します。

例:

[Authorize(Roles = "Admin, Super User")] 
public ActionResult AdministratorsOnly() 
{ 
return View(); 
} 

は詳細についてhereを参照してください。

[Authorize]属性を使用するには、何らかのメンバーシッププロバイダを使用する必要があることに注意してください。

+0

ありがとう@autonomatt。 ASP.NETのメンバシップ、ロール、およびプロファイルではなく、SQL Serverのユーザー/ロールに独自のテーブル構造を使用する方が望ましいので、カスタムメンバシッププロバイダを実装する必要がありますか? [this](http://msdn.microsoft.com/en-us/library/f1kyba5e%28v=vs.100%29.aspx)の記事は良い方法ですか? –

+1

それは私がやったことです。私が研究しているとき、私は同じことを言うたくさんの記事に出くわしました。 MSのテーブル構造の使用は推奨されていません。主に特定のデータを格納する方法が原因で、照会が非常に難しくなります。私は自分のデータアクセス層でNHibernateを使用し、カスタムNHibernate Membership Providerを構築しました。 [この記事(http://www.codeproject.com/Articles/55174/Custom-Fluent-Nhibernate-Membership-and-Role-Provi)は私を助けました。また、[この記事Mauricio Scheffer](http://bugsquash.blogspot.com/2010/11/windsor-managed-membershipproviders.html)は、IoCを使用する場合は多少関連しています。 – autonomatt

+0

ありがとう@autonomatt –

関連する問題