WebBrowser transforme (décode) ma variable uri
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 :
Citation:
URI(a):/?goto=./myRedirectFileAfterLogin.php¶m1=a¶m2=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 :
Il redirige sur :
Une idée afin qu'il ne décode pas ce paramètre lors de l'appel de la page via le WebBrowser ?
Code:
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);
}
}
} |