2012-12-17 89 views
0

我面對奇怪的問題在我的地盤,我有菜單,我與asp:menuSiteMap處理,現在我想基於roles限制menu's,所以我在web.config中使用securityTrimmingEnable="true" ,現在我的問題是我有一些菜單項需要由2種類型的用戶(管理員和登錄用戶)啓用,現在在Web.Sitemap文件中,我創建了siteMapNode它在菜單中使用,此處我已添加roles屬性以指定哪些類型的用戶可以訪問菜單,有一個主菜單,應該只有這2個用戶訪問,沒有其他人(即非匿名),現在我找不到方法來指定在roles屬性中的多個角色,我也試過指定*但似乎對於非匿名用戶工作太,這是不是我的要求,這是我web.sitemap文件SecurityTrimming在asp.net網站地圖

<siteMapNode roles="*"> 
    <siteMapNode roles="Administrator" url="~/default.aspx" title="HOME" /> 
</siteMapNode> 

在上述情況下的樣本主菜單隻提供給管理員。現在,如果我指定*使其可供非管理員使用,但是已登錄用戶,它也適用於未登錄的用戶。

<siteMapNode roles="*"> 
    <siteMapNode roles="*" url="~/default.aspx" title="HOME" /> 
</siteMapNode> 

有反正我可以提供給管理員和登錄的用戶僅上面的菜單。下面
是我的web.config設置:

<siteMap defaultProvider="XmlSiteMapProvider" enabled="true"> 
     <providers> 
     <clear/> 
     <add name="XmlSiteMapProvider" 
      description="Default SiteMap provider." 
      type="System.Web.XmlSiteMapProvider " 
      siteMapFile="Web.sitemap" 
      securityTrimmingEnabled="true" /> 
     </providers> 
    </siteMap> 

回答