По умолчанию для класса Uri используется RFC 2396. Для OpenID и OAuth мне нужно выполнить Uri, совместимое с RFC 3986.
Из Документация класса System.Uri:
По умолчанию любые зарезервированные символы в URI экранируются в соответствии с RFC 2396. Это поведение изменяется, если включена идентификация международных идентификаторов ресурсов или интерполяция доменных имен, в этом случае зарезервированные символы в URI экранируются в соответствии с RFC 3986 и RFC 3987.
В документации также указано, что включение этого режима IRI и, следовательно, поведение RFC 3986 означает добавление элемента секции uri в файл machine.config, а это - в файл app/web.config:
<configuration>
<uri>
<idn enabled="All" />
<iriParsing enabled="true" />
</uri>
</configuration>
Но присутствует ли это в файле .config или нет, я получаю то же (не 3986) поведение экранирования для приложения .NET 3.5 SP1. Что еще мне нужно сделать, чтобы получить Uri.EscapeDataString
для использования правил RFC 3986? (в частности, чтобы избежать зарезервированных символов, определенных в этом RFC)