返回不同角色的不同siteMapNodes

时间:2010-05-22 13:29:35

标签: c# asp.net sitemap sitemapprovider

我正在使用我自己的SiteMapProvider,它只是继承而且有点重写System.Web.XmlSiteMapProvider

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

有可能吗?如果是,我该怎么做?

1 个答案:

答案 0 :(得分:1)

Scott Gu的博客中有一篇文章可以帮到你。本文中的示例使用的是Windows身份验证,但它也适用于表单身份验证。

http://weblogs.asp.net/scottgu/pages/Recipe_3A00_-Implementing-Role_2D00_Based-Security-with-ASP.NET-2.0-using-Windows-Authentication-and-SQL-Server.aspx

如果你想为不同的角色实现不同的标题,那么这里是一个如何做到这一点的例子。您需要做的就是创建指向同一个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>