Quería pasar por parámetro un valor cifrado, evitando los problemas de los caracteres especiales y de seguridad de carácteres escaped. (HTTP Error 404.11 (The request filtering module is configured to deny a request that contains a double escape sequence))
La solución es convertir la cadena cifrada a base64 y luego volverla a pasar a string.
En mi caso lo he cifrado mediante SimplerAes() de “DomiLibrary.Utility”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
using DomiLibrary.Utility.Encryptation; using System.Security.Cryptography; using System.Text; var aes = new SimplerAes(); //Ciframos, puedes utilizar cualquier algoritmo byte[] toEncodeAsBytes = Encoding.GetEncoding(1252).GetBytes(aes.EncryptToUrl(parametro)); //Pasamos a Base64 y ya podemos llamar a la la página pasándole el parámetro. var parametroCifradoBase64 = Convert.ToBase64String(toEncodeAsBytes); ---------------------------------------------------------------------- public ActionResult Obtener(string parametroCifradoBase64) { var aes = new SimplerAes(); //hacemos el proceso al contrario byte[] binary = Convert.FromBase64String(parametroEncriptado); var parametro= aes.DecryptFromUrl(Encoding.GetEncoding(1252).GetString(binary)); } |