4

Dans mon application, je prends l'adresse de messagerie d'un utilisateur, la crypte, la code et la transmet à un QueryString.Request.Querystring supprime les caractères du texte crypté

email = Server.UrlEncode(aes.Encrypt(email)); 

La page de destination fait un Request.QueryString [ "email"], UrlDecodes, et déchiffre ensuite.

string email   = Server.UrlDecode(Request.QueryString["eId"]); 
    string decemail   = aes.Decrypt(email); 
    return decemail; 

Un comportement très étrange se produisait lorsqu'un caractère "+" était supprimé et que le décryptage échouait.

J'ai tenté de supprimer le UrlDecode, mais cela n'a pas résolu le problème.

Ce qui a résolu le problème faisait ceci:

 string email   = Request.QueryString["eId"].ToString(); 
     string decemail   = aes.Decrypt(email); 
     return decemail; 

Se débarrasser de urldecode, et appeler un (ToString) sur la chaîne de requête.

Est-ce que quelqu'un sait pourquoi cela se produirait? Est-ce que Request.QueryString appelle urlDecode par défaut? Je ne le pense pas.

De même, pourquoi le .ToString() fonctionnerait-il dans cette instance?

Répondre

Questions connexes