2011-01-25 3 views
1

У меня проблема с меню asp.net. У меня есть родительское меню с 3 детьми. 2 ребенка имеют анонимный доступ, а 1 ребенок имеет доступ к базе данных. Но родитель имеет доступ : например Родителя - ребенку - Детский B - Детский CНесколько ролей в ASP-меню

ребенок & B есть анонимный-доступ, или в ролях, которую я могу использовать «*» характер. , но Child C просто показывает определенную роль, а не анонимный.

Как установить роль для PARENT? Ребенок A, B и C в меню asp.net (.net framework 4) Я использовал sqlsitemapprovider.

ответ

0

Вы можете установить роль PARENT в "*". Пока Child C имеет указанную роль, он будет отфильтрован соответствующим образом.

Так для примера это сделать:

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

Если вы имели определенные роли для каждого узла, то вы должны установить роли, как это:

PARENT roles="RoleA,RoleB,RoleC" 
    ChildA roles="RoleA" 
    ChildB roles="RoleB" 
    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

Hi theChrisKent, Спасибо за ваш ответ. Я попробовал ваше решение, но когда я обращаюсь к странице анонимно, ChildC был доступен. –

+0

@aldi Я обновил свой ответ, чтобы включить информацию о включении защиты, которая требуется делать то, что вы пытаетесь выполнить. – theChrisKent