用web.sitemap與treeview控件製做菜單, 如何根據用戶權限來控製菜單是否顯示?
1. web.config 文件設置 a) 開啟角色管理<roleManager enabled="true" defaultProvider ="CustomizedRoleProvider"> b) 設置文件或目錄權限, 如 <location path="ITHelpDesk/UserAdmin.aspx"> <system.web> <authorization> <allow roles="USER_ADMIN"/> <deny users="*"/> </authorization> </system.web> </location> c) 設置siteMap節屬性, securityTrimmingEnabled="true"/ <siteMap enabled="true" defaultProvider="SecuredSiteMapProvider"> <providers> <clear/> <add name="SecuredSiteMapProvider" type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" siteMapFile="web.sitemap" securityTrimmingEnabled="true"/> </providers> </siteMap>2. web.sitemap 文件 設置每一節點的角色, 如<siteMapNode url="~/ITHelpDesk/UserAdmin.aspx" title="用戶管理" description="用戶管理" roles="USER_ADMIN" />
關鍵: 每一項(包括目錄, 即子菜單)同時在web.sitemap和web.config中設置才有效, web.sitemap中為roles節點屬性, web.config中為location 節