2011-01-25 4 views
1

asp.netメニューに問題があります。 私は3人の子供を持つ親メニューを持っています。子どもの2人は匿名アクセス権を持ち、1人の子供は役割ベースアクセス権を持っています。しかし、親がアクセス 例えばを持っています PARENT - 子供A - 子B は - 子供CASPメニューの複数の役割

子供A & Bは、匿名アクセスもを持っている、またはロールに私は、 "*" 文字を使用することができます。 子供Cは特定の役割にのみ表示され、匿名では表示されません。

PARENTの役割を設定するにはどうすればよいですか? Asp.netメニュー(.net framework 4)の子A、B、C 私はsqlsitemapproviderを使用しました。

答えて

0

親役割を"*"に設定することもできます。子Cの役割が指定されている限り、それに応じて除外されます。

だからあなたの例については、このない:これらのフィルタこれらの役割に基づいているために

PARENT roles="RoleA,RoleB,RoleC" 
    ChildA roles="RoleA" 
    ChildB roles="RoleB" 
    ChildC roles="RoleC" 

:あなたは、各ノードの特定の役割を持っていた場合

PARENT roles="*" 
    ChildA roles="*" 
    ChildB roles="*" 
    ChildC roles="RoleC" 

は、次のような役割を設定しますあなたはあなたのweb.configにセキュリティトリミングを有効にする必要があります。ガイドはここにあります:http://msdn.microsoft.com/en-us/library/ms178428.aspx

セキュリティトリミングは、定義したアクセスルール(ガイドはhttp://msdn.microsoft.com/en-us/library/9ab2fxh0.aspx)に基づいています。

上記のようにロールを明示的に設定しても、リンクされたページやメニュー項目自体の表示は実際には制限されません。 URL許可呼び出し(各リンクされた項目のアクセスルールをチェックする)を避けるために実行されるため、パフォーマンスに役立ちます。それは良いアイデアだけど、それだけで終わらせる必要はありません。

+0

こんにちはtheChrisKent、あなたの答えをありがとう、私はあなたの解決策を試してみましたが、匿名でページにアクセスすると、ChildCにアクセスできました.. –

+0

@aldiセキュリティトリミングが必要な情報あなたが達成しようとしていることをする。 – theChrisKent

関連する問題