我正在使用我自己的SiteMapProvider
,它只是继承而且有点重写System.Web.XmlSiteMapProvider
。
我想为客户和经理返回不同的siteMapNode
。或者可能相同,但具有不同的Title
属性。
有可能吗?如果是,我该怎么做?
答案 0 :(得分:1)
Scott Gu的博客中有一篇文章可以帮到你。本文中的示例使用的是Windows身份验证,但它也适用于表单身份验证。
如果你想为不同的角色实现不同的标题,那么这里是一个如何做到这一点的例子。您需要做的就是创建指向同一个url的两个节点。作为网址上的查询字符串变量的a = 1和a = 2的原因是为了确保网址是唯一的。如果网址不是唯一的,那么asp.net会抱怨,除非您可以覆盖该功能......
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="default.aspx" title="Home">
<siteMapNode url="page1.aspx?a=1" title="Client Title" roles="Client" />
<siteMapNode url="page1.aspx?a=2" title="Manager Title" roles="Manager" />
</siteMapNode>
</siteMap>