2013-03-26 18 views
5

私は標準asp.net MVC 4イントラネットプロジェクトをスピンアップしてのようなものを持つコントローラまたはメソッド飾ることができます:私はそれをテストしているし、私のドメインアカウントがメンバーであるので、それは完全に(動作しますホットタオルでロールを使用してWindows認証を使用するにはどうすればよいですか?

[System.Web.Mvc.Authorize(Roles = "MyApp Users")] 

をActive Directoryの "MyApp Users")

しかし、私の問題/質問は、"Hot Towel"アプリケーションでどのように同じタイプの動作を取得するのですか?風のコントローラー、HotTowelコントローラー、または同じ属性のメソッドをデコレートしようとしましたが、決して認証できません。何が得られますか?

ご協力いただき誠にありがとうございます。

+0

ロールプロバイダの設定はありますか? IPrincipalをチェックして、あなたもサインインしているかどうか確認してください。 –

+0

私はasp.net mvcのデフォルトロールプロバイダを使用しています...カスタムはありません。そして、はい、IPrincipalをチェックすると、ログインしていることがわかります。 –

答えて

5

最後にそれを分かりました。私はこれが他人に役立つことを願っています。

まず、あなたはそうのようなあなたのroleManagerとしてWindowsProviderを設定する必要があります。

<roleManager defaultProvider="WindowsProvider" 
    enabled="true" 
    cacheRolesInCookie="false"> 
    <providers> 
    <add 
     name="WindowsProvider" 
     type="System.Web.Security.WindowsTokenRoleProvider" /> 
    </providers> 
</roleManager> 

その後、あなたはこの質問に、より具体的に[Roles.IsUserInRole()を使用]ユーザーのロールを確認し、することができるようになりますauthorize属性を使用してください。

[System.Web.Mvc.Authorize(Roles = "YourDomain\\MyApp Users")] 

そして、あなたが期待するようになりましたすべての作品:唯一のことは、あなたがそうのように、AUTHORIZE属性にドメインを含める必要がありますということです。

関連する問題