Bonjour, j'utilise le navigateur Web (WebBrowser1).
Mon problème vient de l'encodage d'URL.
Je souhaite définir l'url2 (uriRedirect) dans un paramètre passé dans l'url1
url1 = "/index.php?login=myLogin&pass=myPass&uriRedirect=" + "/?goto=./myRedirectFileAfterLogin.php¶m1=a¶m2=b"
Le but étant de lancer le WebBrowser sur l'url1 qui authentifie l'utilisateur et le redirige sur la page 2 : "/myRedirectFileAfterLogin.php¶m1=a¶m2=b"
L'encodage se fait bien via la classes http://iron9light.wordpress.com/2008...r-sliverlight/
L'uri est correctement encodée :
Mais l'appel du WebBrowser, convertit seul, automatiquement et indésirablement mon paramètre uriRedirect. Il le décode avant de l'envoyer !!!URI(a):/?goto=./myRedirectFileAfterLogin.php¶m1=a¶m2=b
URI(b):%2f%3fgoto%3d..%2fmyRedirectFileAfterLogin.php%26param1%3da%26param2%3db
Au lieu de nous rediriger vers :
Il redirige sur :http://www.test.com/index.php?login=myLogin&pass=myPass&uriRedirect=%2f%3fgoto%3d..%2fmyRedirectFileAfterLogin.php%26param1%3da%26param2%3db
Une idée afin qu'il ne décode pas ce paramètre lors de l'appel de la page via le WebBrowser ?http://www.test.com/index.php?login=myLogin&pass=myPass&uriRedirect=/?goto=./myRedirectFileAfterLogin.php¶m1=a¶m2=b
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplWebBrowser { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { String address = "http://" + "www.test.com" + "/"; String uri = "/?goto=./myRedirectFileAfterLogin.php¶m1=a¶m2=b"; Console.WriteLine("URI(a):" + uri); String uriEncode = System.Web.HttpUtility.UrlEncode(uri); Console.WriteLine("URI(b):" + uriEncode); Console.WriteLine("address:" + address); Uri baseUri = new Uri(address); Uri uriFinale = new Uri(baseUri, "/index.php?login=myLogin&pass=myPass&uriRedirect=" + uriEncode); Console.WriteLine("uriFinale:" + uriFinale); webBrowser1.Navigate(uriFinale); } } }
Partager