我面對奇怪的問題在我的地盤,我有菜單,我與asp:menu
和SiteMap
處理,現在我想基於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>