Tengo el siguiente código de enrutamiento:.NET MVC enrutamiento w/codificación URL Problemas
routes.MapRoute(
"email-validated/{sessionId}",
"email-validated/{sessionId}",
new { controller = "User", action = "EmailValidated", sessionId = UrlParameter.Optional }
);
Cuando llegué a la ruta w/algo que se URL codificada que no coincidirá con la ruta de 2f%,% 2b y algunos otros personajes escapados. También no coincidirá con la no URL codificada (cosas w/+, etc.) Por ejemplo
Esto funciona:
correo electrónico validada/XQiKC6KMM% 2cmko4nOvzGRwPu9oaZFoCtXsFFJg3ZTf9S5rsBbLGjnz3FN3SJ0apEZcqK1PIcCY28mRMykB39XnFLKaL7390CDfLZiV77cso
esto no funciona (containts% 2F etc):
email-validated/XQiKC6KMM%2fmko4nOvzGRwPu9oaZFoCtXsFFJg3ZTf9S5rsBbLGjnz3FN3SJ0apEZcqK1PIcCY28mRMykB39XnFLKaL7390CDfLZiV77cso
Esto no funciona (+ contiene etc)
email-validated/XQiKC6KMM+mko4nOvzGRwPu9oaZFoCtXsFFJg3ZTf9S5rsBbLGjnz3FN3SJ0apEZcqK1PIcCY28mRMykB39XnFLKaL7390CDfLZiV77cso
cómo estás generando este SessionId? – hunter
Debe usar un GUID en lugar de esa cadena. Parece muy aleatorio y tiene la posibilidad no solo de contener caracteres mal codificados, sino también de caracteres <> que invalidan la solicitud. –
la sesión es una cadena aleatoria codificada en base 64 y luego HttpUtilty.UrlEncoded. Estoy trabajando con portar un sitio heredado a mvc 3 y sería extremadamente difícil volver a codificar el funcionamiento lamentable de las ID de sesión, así que necesito una solución para esto :( –