Los valores por defecto de la clase Uri a RFC 2396. Para OpenID y OAuth, necesito Uri escapar coherente con RFC 3986.Como llegar Uri.EscapeDataString para cumplir con el RFC 3986
Desde el System.Uri class documentation:
Por defecto, cualquier carácter reservado en el URI se escapa de acuerdo con RFC 2396. Este comportamiento cambia si se habilitan los identificadores de recursos internacionales o el análisis de nombres de dominio internacional, en cuyo caso se escapan los caracteres reservados en el URI de acuerdo con RFC 3986 y RFC 3987.
La documentación también establece que la activación de este modo de IRI y por lo tanto el comportamiento RFC 3986 significa la adición de un elemento de la sección uri en Machine.config y esto a su aplicación/archivo web.config:
<configuration>
<uri>
<idn enabled="All" />
<iriParsing enabled="true" />
</uri>
</configuration>
Pero si este está presente en el archivo .config o no, obtengo el mismo comportamiento de escape (no 3986) para una aplicación .NET 3.5 SP1. ¿Qué más necesito hacer para obtener Uri.EscapeDataString
para usar las reglas RFC 3986? (específicamente, para escapar de los caracteres reservados como se define en esa RFC)
He agregado algo del contenido de la comunidad con respecto al error tipográfico en el ejemplo de sintaxis. –
Presenté esto internamente como un error con .NET Framework (trabajo para MSFT). Lo reconocen como un error de documentación, ya que de hecho esta configuración de configuración * no * hace que la clase Uri se comporte como RFC 3986 con respecto al escape. –