我们需要为每个登录用户加载不同的XML站点地图。此站点地图可以来自各种来源(Web服务,数据库,文件),并且必须在运行时加载。
我设计了它:当用户登录时,将获取该用户的自定义XML并将其放入Session。在我的自定义SiteMapProvider的BuildSiteMap()方法中,我需要加载XML作为站点地图。我知道如何逐个节点地执行此操作,但我的问题是:如果XMLSiteMapProvider可以从XML文件加载站点地图数据,我是否可以从内存中的站点地图文件中执行相同的操作(通过将我的XML转换为sitemap XML)?
感谢任何评论,谢谢。
答案 0 :(得分:0)
虽然技术上应该可行,但我认为这不是一个好方法,因为它与包含完整网站导航的站点地图的想法相矛盾,并通过为每个节点指定用户/组来处理授权。
<?xml version="1.0" encoding="utf-8" ?>
<siteMap>
<!-- other <siteMapNode> elements -->
<siteMapNode title="Support"
description="Support"
url="~/Customers/Support.aspx"
roles="Customers" />
</siteMap>
答案 1 :(得分:0)
您可以在siteMapFile
中提供siteMapNode
属性。也许这会对你有所帮助吗?
<?xml version="1.0" encoding="utf-8" ?>
<siteMap>
<siteMapNode siteMapFile="~/users/xxx.sitemap" />
</siteMap>