Карты узла ASP.NET
Обновлен: Ноябрь 2007
Для использования структуры переходов веб-узла ASP.NET необходимо описать структуру веб-узла, чтобы API структуры переходов и элементы управления структуры переходов могли отображать структуру узла надлежащим образом. По умолчанию система переходов веб-узла использует XML-файл, содержащий иерархию веб-узла. Однако можно настроить систему переходов так, чтобы использовались альтернативные источники данных. Дополнительные сведения см. в разделе Поставщики в структуре переходов веб-узла ASP.NET.
Файл Web.sitemap
Самый простой способ создания карты узла — создать XML-файл с именем Web.sitemap, которые иерархически организует страницы веб-узла. Карта веб-узла автоматически выбирается поставщиком карт узла ASP.NET по умолчанию.
Файл Web.sitemap должен быть расположен в корневом каталоге приложения, хотя он может ссылаться на других поставщиков или другие файлы карт узла в других каталогах, если эти файлы принадлежат тому же приложению. Дополнительные сведения см. в разделе Практическое руководство. Настройка нескольких карт веб-узлов и поставщики карт веб-узлов.
Примечание о безопасности. |
---|
Реализация пользовательского поставщика карты узла, которая хранит данные о структуре веб-узла в файле с расширением SITEMAP, является потенциальной угрозой безопасности. По умолчанию сервер ASP.NET настроен так, чтобы не допускать загрузку клиентом файлов с известными расширениями, такими как SITEMAP. Чтобы защитить данные, следует помещать все пользовательские файлы с данными о структуре веб-узла с расширением, отличным от SITEMAP, в папку App_Data. Дополнительные сведения см. в разделе Безопасность системы навигации веб-узла ASP.NET. |
В следующем примере кода показано, как может выглядеть карта простого веб-узла с глубиной дерева, равной трем. Атрибут url может начинаться с ярлыка «~/», который указывает на корневую папку приложения. Дополнительные сведения см. в разделе Путь к веб-узлу ASP.NET.
<siteMap>
<siteMapNode title="Home" description="Home" url="~/default.aspx">
<siteMapNode title="Products" description="Our products"
url="~/Products.aspx">
<siteMapNode title="Hardware" description="Hardware choices"
url="~/Hardware.aspx" />
<siteMapNode title="Software" description="Software choices"
url="~/Software.aspx" />
</siteMapNode>
<siteMapNode title="Services" description="Services we offer"
url="~/Services.aspx">
<siteMapNode title="Training" description="Training classes"
url="~/Training.aspx" />
<siteMapNode title="Consulting" description="Consulting services"
url="~/Consulting.aspx" />
<siteMapNode title="Support" description="Supports plans"
url="~/Support.aspx" />
</siteMapNode>
</siteMapNode>
</siteMap>
В файле Web.sitemap file добавьте элемент siteMapNode для каждой страницы веб-узла. Затем создается иерархия путем вложения элементов siteMapNode. В предыдущем примере страницы для оборудования и программного обеспечения являются дочерними элементами элемента продуктов siteMapNode. Атрибут title задает текст, который обычно используется как текст ссылки, а атрибут description выступает в роли документации и подсказки в элементе управления SiteMapPath.
Примечание. |
---|
На карте веб-узла можно ссылаться на URL-адреса за пределами веб-приложения. Доступ к URL-адресу вне приложения нельзя проверить с помощью ASP.NET. Поэтому при включении фильтрации по ролям безопасности узел карты узла не будет видимым, пока не присвоить атрибуту ролей значение «*», что позволит всем клиентам просматривать узел карты узла без проверки доступа к URL-адресу. Дополнительные сведения см. в разделе Фильтрация карты веб-узла ASP.NET по ролям безопасности. |
Допустимые карты узла
Допустимый файл карты узла содержит только один элемент siteMapNode, расположенный сразу под элементом siteMap. Но элемент первого уровня siteMapNode может содержать любое количество дочерних элементов siteMapNode. Кроме этого, допустимый файл карты узла не должен содержать дублирующиеся URL-адреса, хотя атрибуты url могут быть пустыми. В поставщиках, отличных от поставщика карты веб-узла ASP.NET по умолчанию, это ограничение может не использоваться.
Настройка нескольких карт узла
Можно использовать несколько файлов карты узла или поставщиков для описания структуры переходов всего веб-узла. Например, корневой файл Web.sitemap может ссылаться на дочерний файл карты узлы при помощи ссылки на файл в элементе siteMapNode, используя следующий код.
<siteMapNode siteMapFile="MySiteMap.sitemap"/>
Дополнительные сведения см. в разделе Практическое руководство. Настройка нескольких карт веб-узлов и поставщики карт веб-узлов.
Локализация карт узла
Ниже перечислены свойства карты веб-узла, которые можно локализовать.
Настраиваемые свойства, хранящиеся в коллекции Attributes
Для локализации свойства Url или определения различных структур переход на основе языкового стандарта пользователя необходимо задать различные файлы карты узла для всех стандартов и программными средствами переключиться на соответствующего поставщика Provider во время выполнения. Дополнительные сведения см. в разделе Практическое руководство. Программное изменение узлов карты веб-узла в памяти. Дополнительные сведения о локализации карт веб-узлов см. в разделе Практическое руководство. Локализация данных карты веб-узла.
См. также
Задачи
Практическое руководство. Программное изменение узлов карты веб-узла в памяти
Практическое руководство. Настройка нескольких карт веб-узлов и поставщики карт веб-узлов
Практическое руководство. Локализация данных карты веб-узла
Основные понятия
Общие сведения об структуре переходов веб-узла ASP.NET
Поставщики в структуре переходов веб-узла ASP.NET
Безопасность системы навигации веб-узла ASP.NET