2011-12-27 10 views
6

ユーザーはADに対して自動的に認証されるMVC 3イントラネットアプリケーション(MVC 3 イントラネットアプリケーションテンプレートを使用して作成)では、コントローラへのアクセスをローカルのAdministratorsグループのユーザーに制限しようとしています。私のADのユーザーが(アプリケーションが期待される、ユーザーが認証されている報告)私はできない、ローカルAdministratorsグループにあるにもかかわらず、しかしASP.NET MVC 3イントラネットアプリケーションでローカルAdministratorsグループでAuthorizeAttributeを使用するにはどうすればよいですか?

[Authorize(Roles = "Administrators")] 
public class ElmahController : Controller 

:これを達成するために、私はそうのようなAuthorizeAttributeを適用しようとしましたAuthorizeAttributeが適用されたときにコントローラにアクセスします。空白のページのみが表示されます。私は間違って何をしていますか?

一方、私は、特定のユーザーが機能を指定することを確認しました:この場合

[Authorize(Users = @"ad\arve")] 
public class ElmahController : Controller 

を、私が正常に制限されたページを検索することができます。

EDITは: 私はBUILTINでグループ予選が働いていたことが判明:

[Authorize(Roles = @"BUILTIN\Administrators")] 

が、これはしかしAuthorizeAttributeを介してローカルグループを参照する決定的な方法です?

答えて

6

あなたはIISサーバー上の管理者である場合にのみ機能します役割

[Authorize(Roles = @"BUILTIN\Administrators")] 

としてWindowsグループを使用していますAspNetWindowsTokenRoleProviderビルトインクラスを使用する必要があり How to Create an Intranet Site Using ASP.NET MVC私のチュートリアルに従ってください。会社の実動サーバーにアプリケーションをデプロイする場合は、実動サーバー上でローカル管理者にする必要があります。

+0

ありがとうございます、これは私が見つけたものに相当します( 'BUILTIN 'で' Administrators'を修飾する必要があります)。 – aknuds1

0

カスタムAD許可属性を使用して、各アクションまたはコントローラの上に配置できます。私は前にこれを行い、以下のリンクに非常によく似た何かをしました。これは、フォーム認証を使用していて、ウィンドウを使用していない場合に機能します。

Active Directory Authorization based on Groups

+0

Administratorsグループはローカルですが、問題はADグループと同じですか? – aknuds1

+0

あなたが参照する質問への新しい回答を見ると、基本的にweb.configの 'System.Web.Security.WindowsTokenRoleProvider'を使うことができます。これはすでに私のweb.configに追加されています。私はイントラネットアプリケーションテンプレートを前提としていますので、ADに対する認証は既に機能していると思います。場合によっては、特定のユーザーに対して権限を与えることができました: '[Authorize(Users = @" ad \ arve ")]'。 – aknuds1

+1

これは間違っています。 MSDNの記事を参照してください。ASP.NET MVCを使用してイントラネットサイトを作成する方法http://msdn.microsoft.com/en-us/library/gg703322(VS.98).aspx AspNetWindowsTokenRoleProviderクラスを使用する必要があります – RickAndMSFT

関連する問題