Пользовательский SiteMapProvider, полученный из XMLSiteMapProvider: Как загрузить XML-документ непосредственно в BuildSiteMap () - PullRequest
1 голос
/ 24 июня 2009

У нас есть требование загружать отдельную карту сайта XML для каждого пользователя, который входит в систему. Эта карта сайта может поступать из различных источников (веб-сервис, база данных, файл) и должна загружаться во время выполнения.

Я спроектировал это следующим образом: когда пользователь входит в систему, пользовательский XML для этого пользователя выбирается и помещается в Session. В методе BuildSiteMap () моего пользовательского SiteMapProvider мне нужно загрузить XML в качестве карты сайта. Я знаю, как сделать этот узел за узлом, но мой вопрос заключается в следующем: если XMLSiteMapProvider может загружать данные карты сайта из файла XML, могу ли я заставить его делать то же самое из файла карты сайта в памяти (путем преобразования моего XML в Карта сайта XML)?

Буду благодарен за любые комментарии, спасибо.

Ответы [ 2 ]

0 голосов
/ 13 января 2010

Вы можете предоставить атрибут siteMapFile в siteMapNode. Может быть, это поможет вам в дальнейшем?

<?xml version="1.0" encoding="utf-8" ?>
<siteMap>
  <siteMapNode siteMapFile="~/users/xxx.sitemap" />
</siteMap>
0 голосов
/ 29 декабря 2009

Хотя это должно быть технически возможно, я не думаю, что это был бы хороший подход, потому что он противоречит идее карты сайта, содержащей полную навигацию по сайту и обработку авторизации путем указания пользователей / групп для каждого узла.

<?xml version="1.0" encoding="utf-8" ?>
  <siteMap>
    <!-- other <siteMapNode> elements -->
      <siteMapNode title="Support" 
       description="Support" 
       url="~/Customers/Support.aspx" 
       roles="Customers" />
  </siteMap>
...