C# 为不同的角色返回不同的siteMapNodes

C# 为不同的角色返回不同的siteMapNodes,c#,asp.net,sitemap,sitemapprovider,C#,Asp.net,Sitemap,Sitemapprovider,我使用的是我自己的SiteMapProvider,它只是继承并稍微重写了System.Web.XmlSiteMapProvider 我想为客户机和经理返回不同的siteMapNode。或者可能相同,但具有不同的标题属性 可能吗?如果是的话,我该怎么做呢?这里有一篇来自Scott Gu博客的文章可以帮你解决这个问题。本文中的示例使用windows身份验证,但它也适用于表单身份验证 如果您想为不同的角色实现不同的标题,那么下面是一个如何实现的示例。您只需创建指向同一url的两个节点。a=1和a=2

我使用的是我自己的
SiteMapProvider
,它只是继承并稍微重写了
System.Web.XmlSiteMapProvider

我想为客户机和经理返回不同的
siteMapNode
。或者可能相同,但具有不同的
标题
属性


可能吗?如果是的话,我该怎么做呢?

这里有一篇来自Scott Gu博客的文章可以帮你解决这个问题。本文中的示例使用windows身份验证,但它也适用于表单身份验证

如果您想为不同的角色实现不同的标题,那么下面是一个如何实现的示例。您只需创建指向同一url的两个节点。a=1和a=2作为url上的querystring变量的原因是为了确保url是唯一的。如果url不唯一,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>