C# 使用Webclient获取CookieContainer并设置此CookieContainer

C# 使用Webclient获取CookieContainer并设置此CookieContainer,c#,http,post,cookies,windows-phone-8,C#,Http,Post,Cookies,Windows Phone 8,我使用Webclient类,首先使用它执行Post请求,并将登录数据发送到服务器。从这篇文章中我想要CookieContainer,但是我怎么能得到这个呢? 在这之后,我想向同一个服务器发送一个Get请求,现在使用Post请求中的CookieContainer。所以我首先要得到饼干,然后我要设置它。但是它如何与Webclient类一起工作呢?我发现了这样的东西: public class CookieAwareWebClient : WebClient { private readonl

我使用Webclient类,首先使用它执行Post请求,并将登录数据发送到服务器。从这篇文章中我想要CookieContainer,但是我怎么能得到这个呢? 在这之后,我想向同一个服务器发送一个Get请求,现在使用Post请求中的CookieContainer。所以我首先要得到饼干,然后我要设置它。但是它如何与Webclient类一起工作呢?我发现了这样的东西:

public class CookieAwareWebClient : WebClient
{
    private readonly CookieContainer m_container = new CookieContainer();

    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest request = base.GetWebRequest(address);
        HttpWebRequest webRequest = request as HttpWebRequest;
        if (webRequest != null)
        {
            webRequest.CookieContainer = m_container;
        }
        return request;
    }
}
但是使用这个类,我不能在Get请求中也使用Post请求中的CookieContainer。

你能试试这个吗

public class CookieAwareWebClient : WebClient
{
  private static CookieContainer m_container = null;

  protected override WebRequest GetWebRequest(Uri address)
  {
    WebRequest request = base.GetWebRequest(address);
    HttpWebRequest webRequest = request as HttpWebRequest;
    if (m_container != null)
    {
        webRequest.CookieContainer = m_container;// will be called from the second time onwards
    }
    else
    {
      webRequest.CookieContainer = new CookieContainer();// First time
      m_container =  webRequest.CookieContainer; // Copy the container after the post is success
    }
    return request;
  }
}