Problème avec l'encodage Base64 paramètre dans la chaîne de requête
Je suis l'envoi d'un lien dans mon application web pour les utilisateurs de mails (pour confirmer l'inscription de l'utilisateur) comme suit :
<a target="_blank" href="http://localhost:2817/ConfirmRegistration?confirm=Y0tcmGepe7wjH7A1CT1IaA==">
http://localhost:2817/ConfirmRegistration?confirm=Y0tcmGepe7wjH7A1CT1IaA==
</a>
Mais Chrome alerte ce message :
Est la chaîne de requête non valide ? Comment puis-je le résoudre ?
BTW:
Mon application en C# et MVC3
- double possible de Non Standard Format d'Adresse Web
- Double Possible de en Passant chaînes codées en base64 dans l'URL
Vous devez vous connecter pour publier un commentaire.
Vous devez encoder le
confirm
paramètre. L'erreur que vous obtenez est à cause de la dernière==
fragment.Pour cette utilisation HttpServerUtility.UrlEncode ou similaire cadre de méthodes.
Url.Encode
et le confirmer chaîne de requête modifié pour?confirm=Y0tcmGepe7wjH7A1CT1IaA%3d%3d
, mais google alerte le même message !Vous devriez probablement encoder la valeur du paramètre depuis
=
est lui-même utilisé pour séparer un nom de paramètre à partir de la valeur d'un paramètre.Vous pouvez envoyer votre valeur par le remplacement de deux char
+
à_
et/
à-
:et vous pouvez obtenir vos données côté serveur à l'aide de:
J'ai été en utilisant HttpUtility.UrlEncode mais j'ai eu des problèmes si la chaîne encodée en base64 contenait un signe"+". Elle a été correctement encodé à "%2b" mais quand il revenait de l'navigateur, il a été interprété comme un espace. Donc, j'ai utilisé deux simples encoder/décoder des méthodes à la place: