[Mono-list] Hi, and cookies problem.
Asier
asieriko@yahoo.es
Sat, 4 Dec 2004 21:30:27 +0100
El Domingo, 28 de Noviembre de 2004 14:56, Asier escribi=F3:
> Hi,
> I'm new in the list. I've been trying with mono for the last months, but
> i've a problem.
> I've searched in google, c# forums webs, msdn, etc. but i'm not able to
> solve it.
> I want to login in to a web, that usese html forms, and https. This web
> has also a web certificate.
> When i run my program, the web returns me a cookie, but this cookie is n=
ot
> enough for continue donwloading more page contents.
> I've tried Firefox Live HTTP Headers extension, and using it, i can see
> that the server returns 3 diferent cookies.
>
> Can you help me?
> I attach the code and firefox headers.
>
>
> Thanks in advance.
>
> Asier
>
It's me again,
The problem has solved magically, i upgraded yesterday my debian sid syste=
m,=20
and mono and related packages, and when i run my code, without any change, =
it=20
works fine. What a surprise when i was going to show to my 8 years cousin h=
ow=20
do we do to get programs in the computer, i compiled the code and it worked!
I attach my working code (I have modified it a bit), maybe it can be usefu=
l=20
for somebody. I'll publish it when the full app is finish.
>My Code
HttpWebRequest solicitud =3D (HttpWebRequest) WebRequest.Create(host);=20
string DatosUsuario =3DLoginString
solicitud.CookieContainer =3D new CookieContainer ();
ServicePointManager.CertificatePolicy =3D new CertPolicy();
byte[] datos =3D Encoding.Default.GetBytes(DatosUsuario);=20
solicitud.Method =3D "POST";=20
solicitud.ContentType =3D "application/x-www-form-urlencoded";=20
solicitud.ContentLength =3D datos.Length;=20
Stream sout =3D solicitud.GetRequestStream();=20
sout.Write(datos, 0, datos.Length);=20
sout.Flush();=20
sout.Close();=20
HttpWebResponse respuesta =3D (HttpWebResponse) solicitud.GetResponse();
CookieContainer ContenedorCookies =3D new CookieContainer ();
=20
foreach(Cookie c in respuesta.Cookies)
ContenedorCookies.Add( new Cookie (c.Name, c.Value));
solicitud =3D (HttpWebRequest) WebRequest.Create(anotherhost);=20
string Convocatoria =3D"Convocatoria=3D" + conv +=20
"&Enviar=3DConsultar+Calificaciones";=20
solicitud.CookieContainer =3D ContenedorCookies;
datos =3D Encoding.Default.GetBytes(Convocatoria);=20
solicitud.Method =3D "POST";=20
solicitud.ContentType =3D "application/x-www-form-urlencoded";=20
solicitud.ContentLength =3D datos.Length;=20
=20
sout =3D solicitud.GetRequestStream();=20
sout.Write(datos, 0, datos.Length);=20
sout.Flush();=20
sout.Close();=20
respuesta =3D (HttpWebResponse) solicitud.GetResponse();
Stream stream =3D respuesta.GetResponseStream ();