C# garder l'id de session sur httpwebrequest

J'ai besoin de conserver le même id de session lors de la navigation sur un site des pages à l'aide C#.Net (comme un robot). J'ai trouvé un couple de méthodes, un http sniffer est très pratique, pour comparer ce que mon navigateur IE a été l'envoi de données (requête HTTP) et de la réception par le serveur web (HTTP de la réponse), que les informations importantes sont dans les en-têtes (qui ne sont pas affichées par le navigateur).
Merci de ne pas faire la confusion entre l'id de session qui est public depuis le serveur vers le navigateur et le serveur de variables de session qui sont privés de code du serveur (comme php).

WebHeaderCollection headerCollection = new WebHeaderCollection();
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
  /* save headers */
  for (int i = 0; i < response.Headers.Count; i++)
  {
     headerCollection.Add(response.Headers.AllKeys[i], response.Headers.Get(i));
  }
  /* save cookies */
  cookieContainer = new CookieContainer();
  foreach (Cookie cookie in response.Cookies)
  {
    cookieContainer.Add(cookie);
  }
}

de faire les autres requêtes GET ou POST:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
...
/* restore PHPSESSID */
for (int i = 0; i < headerCollection.Count; i++)
{
 string key = headerCollection.GetKey(i);
 if (key == "Set-Cookie")
 {
  key = "Cookie";
 }
 else
 {
  continue;
 }
 string value = headerCollection.Get(i);
 request.Headers.Add(key, value);
}
/* restore cookies */
request.CookieContainer = cookieContainer;
/* complete request */
Stream writeStream = request.GetRequestStream()

Ma demande est de contribuer à un meilleur code, ou d'autres idées pour faire un meilleur robot session préserver.

InformationsquelleAutor | 2009-09-21