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

我想返回不同的 siteMapNode 适用于客户和经理。也许是一样的,但有不同的 Title 财产。

是否可以?如果是,我该怎么做?

有帮助吗?

解决方案

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

http://weblogs.asp.net/scottgu/pages/recipe_3a00_-implementing-role_2d00_based-sased-security-with-asp.net-2.0-using-windows-authentication-authentication-authentication-authentication-andentication-andentication-and-sql-server.aspx

如果您想为不同角色实施不同的标题,那么这里就是如何完成的示例。您需要做的就是创建两个指向相同URL的节点。 a = 1和a = 2的原因是URL上的querystring var是为了确保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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top