2011-07-14 19 views
1

私は、User.Identity.IsAuthenticatedだけでなく、承認を使用して特定のマークアップを条件付きで表示する方法を探しています。mvc3の条件付き(承認ベース)マークアップ

私はADとWindows認証を使用していますので、私は次のように、マークアップに直接authorizationattributeような何かをできるようにしたいと思います:

@[Authorize {Roles = @"domain\Admin"}] 
<div> admin markup</div> 

私は

@if(User.IsInRole(@"domain\Admin")) 
を使用してみました

でもそれはうまくいかなかった。誰かが私にこれについての最良の方法へのポインタを与えることができますか?

答えて

3

AD役割をサポートするようにRoleManagerを設定しましたか?これは認証とは別のものです。

web.configには、system.web内にroleManagerという要素があり、AD役割の使用を設定できます。具体的には、マネージャー(enabled="true")を有効にし、プロバイダーを作成/指定する必要があります。

最初のアプローチ(AuthorizeAttribute)は、マークアップ内ではなくコントローラとメソッドにのみ適用できます。しかし、すべてが正しく設定されたら、2つ目の方法(User.IsInRole())が役立ちます。

+0

ええ、私はAuthorizeAttributeがコントローラ/メソッド用であることを知っていましたが、誰かがマークアップで同じものを取得するクールな方法を知っていると思っていました。私はすでにwebconfigでroleproviderを正しくセットアップしていると思っていましたが、さらに調査します - ありがとう! – Dynde

関連する問題