asp.net中sitemap的簡單實用

鴨脖發表於2013-10-28

之前沒有用過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 - 本地化用的(要在

  節點加上這個屬性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>

  <sitemapnode url=":add" name="SiteMapProvider" p="" <="">  最後在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"/>

相關文章