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


Элемент <schemeSettings> (параметры URI)

Указывает, как Uri будет анализироваться по конкретным схемам.

<schemeSettings> 
</schemeSettings>

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Атрибуты

Нет

Дочерние элементы

Элемент

Описание

<add>

Добавляет параметр схемы для имени схемы.

<clear>

Удаляет все существующие параметры схемы.

<remove>

Удаляет параметр схемы для имени схемы.

Родительские элементы

Элемент

Описание

<uri>

Содержит параметры, определяющие, как платформа .NET Framework обрабатывает веб-адреса, выраженные с использованием универсальных кодов ресурсов (URI).

Заметки

По умолчанию класс System.Uri разэкранирует закодированные знаками процента разделители путей до выполнения сжатия пути. Это было реализовано следующим образом, как механизм обеспечения безопасности от атак:

https://www.contoso.com/.. %2F.. %2F/Windows/System32/cmd.exe?/c+dir+c:\

Если этот URI передается вниз к модулям, не обрабатывающим корректно символы, закодированные знаками процента, это может привести к выполнению сервером следующей команды:

c:\Windows\System32\cmd.exe /c dir c:\

По этой причине класс System.Uri сначала разэкранирует разделители пути, а затем применяет сжатие пути. Результат передачи вредоносного URL-адреса выше в конструктор класса System.Uri приводит к следующему виду универсального кода ресурса (URI):

https://www.microsoft.com/Windows/System32/cmd.exe?/c+dir+c:\\

Это поведение по умолчанию может быть изменено так, чтобы закодированные знаками процента разделители пути не разэкранировались; для этого к конкретной схеме следует применить параметр конфигурации schemeSettings.

Файлы конфигурации

Этот элемент может быть использован в файле конфигурации приложения или в файле конфигурации компьютера (Machine.config).

Пример

В следующем примере кода показывается конфигурация, используемая классом Uri для поддержки отмены использования процентных escape-символов для разделителей пути в схеме HTTP.

<configuration>
  <uri>
    <schemeSettings>
      <add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
    </schemeSettings>
  </uri>
</configuration>

Сведения об элементе

Пространство имен

Система

Имя схемы

Файл проверки

Может быть пустым

См. также

Ссылки

Схема параметров сети

System.Configuration.SchemeSettingElement

System.Configuration.SchemeSettingElementCollection

System.Configuration.UriSection

UriSection.SchemeSettings

System.GenericUriParserOptions

System.Uri