从XMLSiteMapProvider派生的自定义SiteMapProvider:如何直接在BuildSiteMap()中加载xml文档

时间:2009-06-24 16:15:18

标签: asp.net xml object sitemap

我们需要为每个登录用户加载不同的XML站点地图。此站点地图可以来自各种来源(Web服务,数据库,文件),并且必须在运行时加载。

我设计了它:当用户登录时,将获取该用户的自定义XML并将其放入Session。在我的自定义SiteMapProvider的BuildSiteMap()方法中,我需要加载XML作为站点地图。我知道如何逐个节点地执行此操作,但我的问题是:如果XMLSiteMapProvider可以从XML文件加载站点地图数据,我是否可以从内存中的站点地图文件中执行相同的操作(通过将我的XML转换为sitemap XML)?

感谢任何评论,谢谢。

2 个答案:

答案 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>