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?
ahhh donc je décoder une chaîne décodée. qui a ruiné environ 90 minutes de mon temps lol –
haha. Eh bien maintenant vous savez =) – mauris