您的位置:首页 > 其它

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

2009-03-06 15:44 232 查看
在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"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: