-
Bug sur la classe Uri
Bonjour,
Je cherche à comprendre comme utiliser la classe Uri avec une chaîne de connexion dans laquelle il y a un #.
Par exemple : Uri ftpUri = new Uri("ftp://user:#pwd@127.0.0.1")
Donne : ftpUri.Host = "user"
Au lieu : ftpUri.Host = "127.0.0.1"
Bien évidemment si on enlève le #, plus de problème !
Un bug du framework ?
Merci de votre aide.
-
C'est quoi le but au final ? Se connecter à un serveur FTP ? Il y a d'autres moyens pour fournir le user/password, plus propres que de les mettre dans l'URL...
Tu utilises la classe WebClient ? FtpWebRequest ?
-
Le but est d'utiliser la classe Uri pour récupérer les infos de chaîne de connexion : user, password, host, port, etc... sans avoir à faire du parsing de string.
le problème c'est ce foutu caractère # !
-
Bah oui mais c'est normal, "#" est un caractère réservé d'après les spécifications du standard URI... Même si tu colles cette URI dans Firefox ou IE, ça fait la même chose : il interprète "user" comme le nom de l'hôte...
Donc c'est pas la classe Uri qui bug, c'est cette URI spécifique qui est foireuse... Si tu veux inclure des caractères spéciaux dans l'URI, il faut les encoder (avec HttpUtility.UrlEncode par exemple)