web-dev-qa-db-fra.com

Échapper les caractères de nom d'utilisateur dans les URL d'authentification de base

Lorsque vous utilisez l'authentification de base http, le nom d'utilisateur peut être transmis dans l'URL, par ex.

http://[email protected]/path/

Mais supposons maintenant que le nom d'utilisateur est une adresse e-mail, par exemple [email protected]. Faire cela est clairement ambigu:

http://[email protected]@foo.com/path/

Existe-t-il un moyen d'échapper au caractère @ dans le nom d'utilisateur? J'ai essayé le codage d'URL standard:

http://david%[email protected]/path/

Mais cela ne l'a pas fait.

46
David Ebbo

Selon RFC 3986 , section 3.2.1, il doit être codé en pourcentage:

  userinfo    = *( unreserved / pct-encoded / sub-delims / ":" )

Donc ça ressemble

http://david%[email protected]/path/

Est vrai. Où essayez-vous de le lire? Vous devez peut-être décoder manuellement la valeur?

64
sagi