2010-05-22 58 views
0

我正在使用我自己的SiteMapProvider,它只是繼承並稍微改寫System.Web.XmlSiteMapProvider爲不同角色返回不同siteMapNodes

我想爲客戶和經理返回不同的siteMapNode。或者也許是相同的,但具有不同的Title屬性。

可能嗎?如果是的話,我該怎麼做?

回答

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

如果要實現不同的標題爲不同的角色,然後在這裏是如何可以做一個例子。所有你需要做的是創建兩個節點指向同一個網址。 a = 1和a = 2的原因是URL上的查詢字符串變量是爲了確保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>