asp.net中sitemap的简单实用

之前没有用过sitemap,最近做项目才接触到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 - 本地化用的(要在<siteMap>节点加上这个属性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"/>

你可能感兴趣的:(asp.net)