J'essaie de me connecter à un site qui utilise des cookies. Mon identifiant est le suivant:Récupérer et mettre en place des cookies
private void button1_Click(object sender, EventArgs e)
{
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(baseurl);
req.Referer = referer;
req.AllowAutoRedirect = true;
req.KeepAlive = true;
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
byte[] postbuf = Encoding.ASCII.GetBytes(login);
req.ContentLength = postbuf.Length;
Stream rs = req.GetRequestStream();
rs.Write(postbuf, 0, postbuf.Length);
rs.Close();
cookie = req.CookieContainer = new CookieContainer();
WebResponse resp = req.GetResponse();
string s = "";
foreach (Cookie c in cookie.GetCookies(req.RequestUri))
{
s += ("Cookie['" + c.Name + "']: " + c.Value);
}
textBox1.Text = s;
resp.Close();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex);
}
}
Le cookie possède 2 clés avec des valeurs. Ensuite, j'essaie d'envoyer une demande de poste sur le site comme suit:
private void button2_Click(object sender, EventArgs e)
{
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(search);
req.Referer = referer;
req.AllowAutoRedirect = true;
req.KeepAlive = true;
req.CookieContainer = cookie;
StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream());
if (reader != null)
{
string data = reader.ReadToEnd();
reader.Close();
textBox1.Text = data;
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex);
}
}
Mais je reçois une erreur qu'il ne peut pas authentifier. Quand je me connecte en utilisant firefox, je vois que le cookie contient beaucoup plus d'entrées.
Quel est le problème avec mon code?
La première réponse contient le cookie de .ASPXAUTH? – TheBoyan
Veuillez ne pas mettre "C#" dans le titre. C'est ce que les tags sont pour. – Amy
@Bojan: Non, ce n'est pas –