日期:2014-05-18  浏览次数:20456 次

关于asp.net的web.sitemap中roles设置的问题
我在webconfig中已经设置了securityTrimmingEnabled= "true ",然后在sitemap各节中的roles属性设置为什么有时无效?尤其是对于一些没有子节点的节点,roles属性中没有某个角色可是当这个角色登录时在treeview中仍然能显示出这个节点来,哪位xd告诉一声,谢谢!

------解决方案--------------------
up
------解决方案--------------------
也正想做这个

学习一下
------解决方案--------------------
还可以这样来做.
<?xml version= "1.0 " encoding= "utf-8 " ?>
<siteMap xmlns= "http://schemas.microsoft.com/AspNet/SiteMap-File-1.0 " >

<siteMapNode roles= "* " url= " " title= "站点开始 " description= " ">

<siteMapNode roles = "admin " title = "创建用户 " url = "~/pages/createuser.aspx " />
<siteMapNode roles = "admin " title = "列表用户 " url = "~/pages/listusers.aspx " />
<siteMapNode roles = "users " title = "我的信息 " url = "~/pages/myinfo.aspx " />

</siteMapNode>

</siteMap>

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim rn As System.Web.SiteMapNode = SiteMap.RootNode
If rn.HasChildNodes Then
For Each n As SiteMapNode In rn.ChildNodes
If n.Roles.Contains(Roles.GetRolesForUser(My.User.Name)(0)) Then
TreeView1.Nodes.Add(New TreeNode(n.Title))
End If
Next
End If
End Sub

判断当前节点是否包含我的角色中的第一个角色,如包含则在treeview中添加此节点