Sending cookies using HttpCookieCollection and CookieContainer

.net, c#, cookiecontainer, cookies

Solution

Here's the code I've used to transfer the cookie objects from the incoming request to the new HttpWebRequest... ("myRequest" is the name of my HttpWebRequest object.)

HttpCookieCollection oCookies = Request.Cookies;
for ( int j = 0; j < oCookies.Count; j++ ) 
{
    HttpCookie oCookie = oCookies.Get( j );
    Cookie oC = new Cookie();

    // Convert between the System.Net.Cookie to a System.Web.HttpCookie...
    oC.Domain   = myRequest.RequestUri.Host;
    oC.Expires  = oCookie.Expires;
    oC.Name     = oCookie.Name;
    oC.Path     = oCookie.Path;
    oC.Secure   = oCookie.Secure;
    oC.Value    = oCookie.Value;

    myRequest.CookieContainer.Add( oC );
}

Problem

I want to tunnel through an HTTP request from my server to a remote server, passing through all the cookies. So I create a new `HttpWebRequest` object and want to set cookies on it. `HttpWebRequest.CookieContainer` is type `System.Net.CookieContainer` which holds `System.Net.Cookies`. On my incoming request object: `HttpRequest.Cookies` is type `System.Web.HttpCookieCollection` which holds `System.Web.HttpCookies`. Basically I want to be able to assign them to each other, but the differing types makes it impossible. Do I have to convert them by copying their values, or is there a better way?

Original source