C # WebRequest utilizando cookies

Tengo una aplicación de winforms en la que he estado trabajando que ejecuta múltiples pruebas en cuentas de consumidores. Las pruebas requieren un inicio de sesión único para ejecutarse.

string patwigters = "authmethod=on&chkRememberMe=on&login-form-type=pwd&password=" + pw.Text + "&userid=" + uid.Text + "&username=" + uid.Text; string strResponse; HttpWebRequest requestLogin = (HttpWebRequest)WebRequest.Create("https://www.url.com/login.form"); requestLogin.Method = "POST"; requestLogin.CookieContainer = cookieJar; requestLogin.ContentType = "application/x-www-form-urlencoded"; requestLogin.ContentLength = patwigters.Length; StreamWriter stOut = new StreamWriter(requestLogin.GetRequestStream(), System.Text.Encoding.ASCII); stOut.Write(patwigters); stOut.Close(); StreamReader stIn = new StreamReader(requestLogin.GetResponse().GetResponseStream()); strResponse = stIn.ReadToEnd(); stIn.Close(); 

Este script funciona bien para el inicio de sesión, el problema es que cuando necesito ejecutar realmente las pruebas necesito devolver todos los resultados en una cadena (resultados en HTML).

 private string runTestRequest(Uri url, string parameters) { string testResults = string.Empty; HttpWebRequest runTest = (HttpWebRequest)WebRequest.Create(url); runTest.CookieContainer = cookieJar; runTest.Method = "POST"; runTest.ContentType = "application/x-www-form-urlencoded"; StreamWriter stOut = new StreamWriter(runTest.GetRequestStream(), System.Text.Encoding.ASCII); stOut.Write(parameters); stOut.Close(); StreamReader stIn = new StreamReader(runTest.GetResponse().GetResponseStream()); testResults = stIn.ReadToEnd(); stIn.Close(); return testResults; } 

Pero funciona e intenta iniciar sesión. ¿Cómo puedo usar la Cookie de la solicitud de inicio de sesión anterior con esta + muchas otras solicitudes web?

Gracias por la ayuda.

EDITAR:

Agregué esto a mi código pero que debería hacer lo mismo que dice BrokenGlass, excepto que es un poco diferente, pero aún no funciona.

 foreach (Cookie cookie in responseLogin.Cookies) { cookieJar.Add(new Cookie(cookie.Name.Trim(), cookie.Value.Trim(), cookie.Path, cookie.Domain)); richTextBox2.Text += cookie.Name.ToString() + Environment.NewLine + cookie.Value.ToString() + Environment.NewLine + cookie.Path.ToString() + Environment.NewLine + cookie.Domain.ToString(); } 

Algo como esto debería funcionar, estoy usando un código similar para guardar una cookie de inicio de sesión:

 HttpWebRequest runTest; //...do login request //get cookies from response CookieContainer myContainer = new CookieContainer(); for (int i = 0; i < Response.Cookies.Count; i++) { HttpCookie http_cookie = Request.Cookies[i]; Cookie cookie = new Cookie(http_cookie.Name, http_cookie.Value, http_cookie.Path); myContainer.Add(new Uri(Request.Url.ToString()), cookie); } //later: HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.url.com/foobar"); request.CookieContainer = myContainer;