asp.net中sitemap的简单实用【转载】

环境:vs2008

  首先创建sitemap文件,右击project->Add new item,弹出选项框,选择Site Map,选择Ok。好了sitemap文件就创建好了。

  下面开始编辑它的内容,新建的sitemap文件中默认内容如下:

以下是代码片段: <?xml version="1.0" encoding="utf-8" ?>  <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0%22 >  <siteMapNode url="" title="" description="">  <siteMapNode url="" title="" description="" />  <siteMapNode url="" title="" description="" />  </siteMapNode>  </siteMap>

  <siteMapNode>

  的属性:

  Url - 链接地址

  Title - 显示的标题

  Description - 描述(ToolTip)

  resourceKey - 本地化用的(要在

  节点加上这个属性enableLocalization=true)

  securityTrimmingEnabled - 是否让sitemap支持安全特性

  roles - 哪些角色可以访问当前节点,多角色用逗号隔开(需要将securityTrimmingEnabled设置为true)

  siteMapFile - 引用另一个sitemap文件

  注:应用权限的时候,Web.config中的SiteMap节点的Provider也要有相对应的配置(securityTrimmingEnabled="true")

  例:

 

以下是代码片段: <siteMapNode url="" title="" description="" roles="Administrator,Manager,NormalUser">  <siteMapNode url="~/Admin/ManageUser/Manage_Users.aspx" title="Manage Users" description="" roles="Administrator" />  <siteMapNode url="~/Admin/HotelInfo/Manage_Hotels.aspx" title="Manage Hotels" description="" roles="Manager"/>  <siteMapNode url="~/Admin/RegionInfo/Region_List.aspx" title="Manage Regions" description="" roles="Administrator"/>  <siteMapNode url="~/Admin/ManageTable/Manage_SelfDetails.aspx" title="Manage Tables" description="" roles="NormalUser"/>

  其中roles是需要进行设置的,可在每个目录下的web.config中设置。

   接下来在web.config中配置sitemap,

 

以下是代码片段: <siteMap defaultProvider="SiteMapProvider">  <providers>  <add name="SiteMapProvider"  type="System.Web.XmlSiteMapProvider"  securityTrimmingEnabled="true"  siteMapFile="Web.sitemap"/>  </providers>  </siteMap>

 最后在MasterPage中应用sitemap,

以下是代码片段: <asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSourceDefault" Orientation="Horizontal">  <StaticMenuItemStyle ForeColor="White" ItemSpacing="10px" Font-Underline="false"/>  <StaticSelectedStyle ForeColor="#99FFFF" />  <DynamicSelectedStyle ForeColor="#99FFFF" />  </asp:Menu>  <asp:SiteMapDataSource ID="SiteMapDataSourceDefault" runat="server" SiteMapProvider="SiteMapProvider" ShowStartingNode="false"/>
原文地址:https://www.cnblogs.com/happylyyer/p/4469393.html