先创建sitemap文件,右击project->add new item,弹出选项框,选择site map,选择ok。好了sitemap文件就创建好了。
下面开始编辑它的内容,新建的sitemap文件中默认内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<sitemap xmlns="http://schemas.microsoft.com/asp教程net/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"/>