Estoy tratando de pasar una cadena Base64 a una aplicación web C# .Net a través de QueryString. Cuando llega la cadena, el signo "+" (más) está siendo reemplazado por un espacio. Parece que el proceso de URLDecode automático está haciendo esto. No tengo control sobre lo que se pasa a través de QueryString. ¿Hay alguna forma de manejar este lado del servidor?QueryString mal formado después de URLDecode
Ejemplo:
http://localhost:3399/Base64.aspx?VLTrap=VkxUcmFwIHNldCB0byAiRkRTQT8+PE0iIHBsdXMgb3IgbWludXMgNSBwZXJjZW50Lg==
Produce:
VkxUcmFwIHNldCB0byAiRkRTQT8 PE0iIHBsdXMgb3IgbWludXMgNSBwZXJjZW50Lg==
personas han sugerido URLEncoding la cadena de consulta:
System.Web.HttpUtility.UrlEncode(yourString)
no puedo hacer eso ya que no tengo control sobre la vocación rutina (que funciona bien con otros idiomas).
También estaba la sugerencia de reemplazar los espacios con un signo más:
Request.QueryString["VLTrap"].Replace(" ", "+");
tuve embargo de esto, pero mi preocupación con él, y yo debería haber mencionado esto para empezar, es que no lo hago saber qué otros caracteres pueden estar mal formados además del signo más.
Mi objetivo principal es interceptar el QueryString antes de que se ejecute a través del decodificador.
Para este fin intenté buscar Request.QueryString.toString() pero contenía la misma información mal formada. ¿Hay alguna manera de ver la QueryString en bruto antes de está URLDecoded?
Después de más pruebas, parece que .Net espera que todo lo que proviene de QuerString tenga codificación URL pero el navegador no codifica URL automáticamente las solicitudes GET.
OK, así que ahora estoy completamente a la pérdida de la forma en que funciona tan.La pregunta establece explícitamente que no hay forma de cambiar lo que se pasó a QueryString, pero se han rechazado todas las respuestas correctas (es decir, se reemplaza el espacio por más antes de la decodificación de base64). Ve figura ... – Alexander