我的asp.net菜单有问题。 我有一个有3个孩子的父菜单。 2个孩子有匿名访问权限,1个孩子有角色基础访问权限。但是父母可以访问 例如: 家长 - 孩子A. - 孩子B. - 孩子C
儿童A& B有匿名访问,或者在角色中我可以使用“*”字符。 但是Child C只是针对特定角色展示,而不是匿名。
如何为PARENT设置角色? asp.net菜单中的子A,B和C(.net框架4) 我使用了sqlsitemapprovider。
答案 0 :(得分: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授权调用(检查每个链接项的访问规则),从而有助于提高性能。所以这是一个好主意,但这不是唯一需要做的事情。