在读取站点地图时自动应用安全设置

在ASP.NET开发中,站点地图使用很普遍。一般站点地图就是一个标准的xml文件,其文件扩展名为sitemap。例如下面这样的格式

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
    <siteMapNode url="default.aspx" title="网站首页"  description="这是我们的网站首页">
      <siteMapNode url="UserManagment/default.aspx" title="后台管理"  description="">
        <siteMapNode url="UserManagment/CreateUser.aspx" title="创建用户"></siteMapNode>
        <siteMapNode url="UserManagment/CreateRole.aspx" title="创建角色"></siteMapNode>
        <siteMapNode url="UserManagment/Login.aspx" title="用户登录"></siteMapNode>
        <siteMapNode url="UserManagment/UserManagmentPage.aspx" title="用户管理"></siteMapNode>
        <siteMapNode url="UserManagment/RoleManagmentPage.aspx" title="角色管理"></siteMapNode>
      </siteMapNode>
        <siteMapNode url="Basic/Help.aspx" title="帮助页面"  description="" />
    </siteMapNode>
</siteMap>

这个站点地图可以提供给三个控件使用,他们分别是

  • TreeView
  • Menu
  • SitemapPath

我相信很多朋友都用过上面三个控件。但可能大家会想一个问题:因为我们的页面会有授权方面的要求,例如上面的“后台管理”这个页面可能就只有管理员才可以访问。我们能不能在控件中根据当前用户的身份自动地决定哪些是要显示的,而哪些是不显示的呢?

答案是肯定的。请在web.config中添加如下设置即可

<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
  <providers>
    <add name="XmlSiteMapProvider" description="通过读取一个站点地图文件" type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" siteMapFile="web.sitemap" securityTrimmingEnabled="true"/>
  </providers>
</siteMap>

关键的一个属性就是securityTrimmingEnabled="true"

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值