奇怪的SiteMap
来源:互联网 发布:淘宝网月季花 编辑:程序博客网 时间:2024/06/08 14:35
最近的一个项目中,要求有一个Menu,不同的Role能访问到不同的Menu Node。
现在已经做好了Role,很自然看到sitemap里面有Roles这个属性可以输入,查一查,还支持逗号“,”分号“;”来区分不同的Role,恩,很好,至少现在看起来很好。
很快的整一下Sitemap,看上去像这样。
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="" title="个人区" description="" roles="use,admin">
<siteMapNode url="~/personal.aspx" title="个人"/>
</siteMapNode>
<siteMapNode url="" title="管理区" description="" roles="admin">
<siteMapNode url="~/manage.aspx" title="管理"/>
</siteMapNode>
</siteMap>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="" title="个人区" description="" roles="use,admin">
<siteMapNode url="~/personal.aspx" title="个人"/>
</siteMapNode>
<siteMapNode url="" title="管理区" description="" roles="admin">
<siteMapNode url="~/manage.aspx" title="管理"/>
</siteMapNode>
</siteMap>
很快的测试一下,发现不行,为什么?没写错丫……
让我们很快的搜索一下,我得到了令人不解的 roles 属性。恩,在Web.Config的SiteMap中启用安全修正。
把下列标记添加到web.config文件中:
<system.web>
……
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
<providers>
<add name="XmlSiteMapProvider"
description="SiteMap provider which reads in .sitemap XML files."
type="System.Web.XmlSiteMapProvider, System.Web, Version=
siteMapFile="Web.sitemap"
securityTrimmingEnabled="true"/>
</providers>
</siteMap>
</system.web>
然后在Web.config实现URL授权,对啊,Roles的意义在哪里?等等,我们仔细看看系统,使用Role的情况下,往往系统是有一部分的页面只能被某些Role访问的,那么规范起见,我们往往将这些东西(模块)放在一个物理文件夹下,应为哪儿能放一个web.config,可以继承父目录的授权。
管理(admin)目录下的web.config 看上去应该是这样:
<system.web>
<authorization>
<allow roles="admin"/>
<deny users="*"/>
</authorization>
</system.web>
<authorization>
<allow roles="admin"/>
<deny users="*"/>
</authorization>
</system.web>
个人(person)目录下的web.config看上去应该是
<system.web>
<authorization>
<allow roles="user"/>
<deny users="*"/>
</authorization>
</system.web>
<authorization>
<allow roles="user"/>
<deny users="*"/>
</authorization>
</system.web>
更改了系统的物理结构、增加了web.config后,sitemap也会变成这样,那么之前需要的效果就达到了。
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="" title="个人区" description="" roles="use,admin">
<siteMapNode url="~/person/personal.aspx" title="个人"/>
</siteMapNode>
<siteMapNode url="" title="管理区" description="" roles="admin">
<siteMapNode url="~/admin/manage.aspx" title="管理"/>
</siteMapNode>
</siteMap>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="" title="个人区" description="" roles="use,admin">
<siteMapNode url="~/person/personal.aspx" title="个人"/>
</siteMapNode>
<siteMapNode url="" title="管理区" description="" roles="admin">
<siteMapNode url="~/admin/manage.aspx" title="管理"/>
</siteMapNode>
</siteMap>
- 奇怪的SiteMap
- 奇怪的SiteMap
- Sitemap制作攻略&Sitemap生成器的评测
- 自定义Magento的sitemap
- SiteMap的WildCard匹配
- sitemap.xml的写法
- Sitemap地图的注意事项
- 创建sitemap的步骤
- ***.sitemap
- 创建文本形式的Sitemap
- 测试typecho的sitemap插件
- Google SiteMap的协议格式详解
- 使用角色机制控制sitemap的显示
- 做了个google sitemap的生成器
- 根据roles显示不同的sitemap
- SEO之不可忽视的网站地图(SiteMap)
- 利用百度的标准生成sitemap
- 根据roles显示不同的sitemap
- 写给想作程序员的人(转载)
- 学习计划(转载)
- 随想
- The first step of JavaEE[6]
- 我从编程中悟出八个字(转载)
- 奇怪的SiteMap
- 如何启用clr enabled配置选项 (转自killkill的Blog)
- Secret
- 感悟
- 歌曲:挥之不去
- 沈龙元远射姜宁头锤 激情国奥2-0复仇博茨瓦纳
- informix的blob
- 【转】HiddenField控件
- 组织级项目管理推广经验