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&param1=a&param2=b"

Le but étant de lancer le WebBrowser sur l'url1 qui authentifie l'utilisateur et le redirige sur la page 2 : "/myRedirectFileAfterLogin.php&param1=a&param2=b"

L'encodage se fait bien via la classes http://iron9light.wordpress.com/2008...r-sliverlight/

L'uri est correctement encodée :
URI(a):/?goto=./myRedirectFileAfterLogin.php&param1=a&param2=b
URI(b):%2f%3fgoto%3d..%2fmyRedirectFileAfterLogin.php%26param1%3da%26param2%3db
Mais l'appel du WebBrowser, convertit seul, automatiquement et indésirablement mon paramètre uriRedirect. Il le décode avant de l'envoyer !!!

Au lieu de nous rediriger vers :
http://www.test.com/index.php?login=myLogin&pass=myPass&uriRedirect=%2f%3fgoto%3d..%2fmyRedirectFileAfterLogin.php%26param1%3da%26param2%3db
Il redirige sur :
http://www.test.com/index.php?login=myLogin&pass=myPass&uriRedirect=/?goto=./myRedirectFileAfterLogin.php&param1=a&param2=b
Une idée afin qu'il ne décode pas ce paramètre lors de l'appel de la page via le WebBrowser ?

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&param1=a&param2=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);
 
        }
    }
}