2011-07-06 1 views
0

MVC3ナビゲーションメニューにデータを入力していて、各SiteMapノードにコントローラの定義した認証ロールを読みたいのですが、Reflectionを使用せずに行う方法はありますか?MVC3 - コントローラの認証ロールを読み取る

あなたが実際にあなたのビュー(カミソリsintax)でこれを行うことができます
+1

あなたは 'メンバーシップ'を使用していますか? –

答えて

0

:あなたはWebFormsViewEngine代わりのRazorViewEngineを使用している場合だけ<% %>のデ@を変更

@if(User.IsInRole("role_name") { 
    @* Show or not show the item depending on the user's role *@ 
} 

方法によって、あなたのコントローラで同じ作品:

public ActionResult MyAction() 
{ 
    if(User.IsInRole("role_name") 
    { } 
} 
+0

私は、ビュー内でユーザーの役割をチェックするのではなく、コントローラを列挙するのが面白かったです。私はCodePlexサイトマッププロバイダの使用を避けたいと考えていました。現在、現在このメニューセキュリティトリミングのためにTelerik MVC拡張機能を使用しています。 私は、MVC3がこの機能を現在持っていることを望んでいました。 – plippard

1

あなたのメニューを生成するためにMVC SiteMap Providerを使用することができます。 AuthrizeAttributeに基づいてセキュリティトリミングが組み込まれています。簡単に拡張できます。

+0

+1これはまさに私が欲しかったのですが、文書のどこに私がこれを見つけることができたのか、私に頭痛を救ってくれてありがとう! – Valchris

0

私は、ビュー内でユーザーの役割をチェックするのではなく、コントローラを列挙することでもっと興味深いです。私はCodePlexサイトマッププロバイダの使用を避けたいと考えていました。現在、現在このメニューセキュリティトリミングのためにTelerik MVC拡張機能を使用しています。

私はMVC3がこの機能性を持つことを望んでいました。

関連する問題