Поделиться через


Практическое руководство. Настройка нескольких карт веб-узлов и поставщики карт веб-узлов

Обновлен: Ноябрь 2007

По умолчанию для переходов по узлу ASP.NET используется XML-файл с названием Web.sitemap, описывающий иерархию веб-узла. Однако можно использовать несколько файлов карт веб-узлов или поставщика карты веб-узла для описания структуры переходов по всему веб-узлу.

Например, можно использовать основную карту веб-узла, ссылающуюся на карту дочернего веб-узла. Карта основного веб-узла может выглядеть следующим образом.

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="https://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode  title="Home Page"  description="">
    <siteMapNode title="First Level 1"  description="" />
    <siteMapNode  title="First Level 2" description="">
      <siteMapNode  title="Second Level 1" description=""/>
      <siteMapNode  title="Second Level 2" description=""/>
    </siteMapNode>
    <siteMapNode siteMapFile="child.sitemap" />
  </siteMapNode>
</siteMap>

Карта дочернего веб-узла может выглядеть следующим образом.

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="https://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode  title="Child First Level 1"  description="">
    <siteMapNode title="Child Second Level 1"  description="" />
    <siteMapNode  title="Child Second Level 2"  description="" />
    <siteMapNode  title=""  description="" />
  </siteMapNode>
</siteMap>

В результате взаимодействия этих двух карт веб-узлов отображается следующее меню.

Home Page
  First Level 1
  First Level 2
    Second Level 1
    Second Level 2
  Child First Level 1
    Child Second Level 1
    Child Second Level 2

Для настройки нескольких карт для одного узла начните с карты веб-узла в корне приложения. Настройте поставщика корневого элемента как поставщика карты веб-узла по умолчанию в файле Web.config. Затем создайте ссылку на карты или поставщиков дочерних узлов, указав их в объекте SiteMapNode.

Создание ссылки на файл карты дочернего узла из карты родительского веб-узла

  • Из карты родительского веб-узла создайте SiteMapNode в том месте структуры переходов, где следует отображаться карт дочернего веб-узла.

    Например, при использовании класса XmlSiteMapProvider по умолчанию добавьте следующий узел SiteMapNode в соответствующее местоположение в файле Web.sitemap.

    <siteMapNode siteMapFile="MySiteMap.sitemap" />
    

    Атрибут siteMapFile может принимать одну из следующих форм.

    • Относящаяся к приложения ссылка (например, ~/MySiteMap.sitemap).

    • Виртуальный путь (например, /Customers/MySiteMap.sitemap).

    • Ссылка на путь относительно места текущего файла карты веб-узла (например, Guests/MySiteMap.sitemap).

      ms178426.alert_note(ru-ru,VS.90).gifПримечание.

      Не вводите атрибут Url, title или description для элемента siteMapNode при указании атрибута siteMapFile.

    Дополнительные сведения о создании файла карты веб-узла см. в разделе Карты узла ASP.NET.

Создание ссылки на пользовательского поставщика карты веб-узла из карты родительского веб-узла

  1. Из карты родительского веб-узла создайте SiteMapNode в том месте структуры переходов, где следует отображаться карт дочернего веб-узла.

    Например, при использовании класса XmlSiteMapProvider по умолчанию откройте файл Web.sitemap и добавьте следующий узел SiteMapNode в соответствующее место иерархии:

    <siteMapNode provider="SimpleTextSiteMapProvider" />
    
    ms178426.alert_note(ru-ru,VS.90).gifПримечание.

    Атрибут provider соответствует атрибуту поставщика name в файле Web.config.

  2. Добавьте пользовательского поставщика карты веб-узла к файлу Web.config, используя элемент add.

    Следующий код позволяет добавить пользовательского поставщика с именем SimpleTextSiteMapProvider, но сохраняет XmlSiteMapProvider в качестве поставщика карты веб-узла по умолчанию.

    <configuration>
      <!-- other configuration sections -->
      <system.web>
        <!-- other configuration sections -->
        <siteMap defaultProvider="XmlSiteMapProvider">
          <providers>
            <add
              name="SimpleTextSiteMapProvider"
          type="Samples.AspNet.SimpleTextSiteMapProvider,Samples.AspNet"
              siteMapFile = "siteMap.txt" />
          </providers>
        </siteMap>
      </system.web>
    </configuration>
    

    Дополнительные сведения о создании настраиваемого поставщика карты веб-узла см. в разделе Реализация поставщиков карт веб-узлов ASP.NET.

Настройка нескольких карт веб-узла в файле Web.config

Объединение карт веб-узла вместе, как в предыдущем примере, позволяет создать единую структуры карты веб-узла из множества элементов. Можно также добавлять ссылки на разные карты веб-узла в файле Web.config, в результате чего они отображаются как разные поставщики. Это полезно, когда для разных областей веб-узла необходимы разные структуры переходов.

Настройка нескольких карт веб-узла в файле Web.config

  • В файле Web.config найдите раздел siteMap и создайте элемент add для каждой карты веб-узла.

    В следующем примере демонстрируется добавление двух карт веб-узла.

    <configuration>
      <!-- other configuration sections -->
      <system.web>
        <!-- other configuration sections -->
        <siteMap defaultProvider="XmlSiteMapProvider">
         <providers>
           <add          name="Company1SiteMap"         type="System.Web.XmlSiteMapProvider"          siteMapFile="~/Company1/Company1.sitemap" />       <add          name="Company2SiteMap"         type="System.Web.XmlSiteMapProvider"          siteMapFile="~/Company2/Company2.sitemap" />
         </providers>
        </siteMap>
      </system.web>
    </configuration>
    

    При использовании этой конфигурации можно использовать файлы ~/Company1/Company1.sitemap и ~/Company2/Company2.sitemap с элементами навигации API и элементами управления навигации, такими как SiteMapPath, TreeView, и Menu. Для этого присвойте соответствующему свойству SiteMapProvider значение Company1SiteMap или Company2SiteMap.

    Дополнительные сведения о добавлении элементов управления навигации к веб-странице см. в разделе Пошаговое руководство. Добавление простой структуры переходов веб-узла.

См. также

Задачи

Пошаговое руководство. Добавление простой структуры переходов веб-узла

Основные понятия

Карты узла ASP.NET

Поставщики в структуре переходов веб-узла ASP.NET

Фильтрация карты веб-узла ASP.NET по ролям безопасности

Реализация поставщиков карт веб-узлов ASP.NET

Безопасность системы навигации веб-узла ASP.NET

Безопасность доступа к данным

Другие ресурсы

Безопасность приложений ASP.NET в средах выполнения