WebClient CookieContainer хорошо работает в.NET 4.0+, но не в более ранних версиях

Я разрабатываю приложение, которое использует WebClient. У меня есть этот класс, который расширяет базовую функциональность WebClient:

public class WebClientEx : WebClient
{
    private CookieContainer _cookieContainer = new CookieContainer();

    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest request = base.GetWebRequest(address);
        if (request is HttpWebRequest)
        {
            (request as HttpWebRequest).CookieContainer = _cookieContainer;
            (request as HttpWebRequest).AllowAutoRedirect = true;
            (request as HttpWebRequest).Timeout = 10000;
        }
        return request;
    }
}

Я использую WebClientEx для входа на сайт и запроса некоторой информации. Это хорошо работает для 4.0 и 4.5, но не работает в более ранних версиях, таких как 3.5, 3.0 и т. д. Я добавил код отладки, и в ранних версиях он говорит, что в контейнере cookie 0 файлов cookie, а 4.0+ говорит, что есть две куки, как и должно быть.

Так что причина, вероятно, в том, что в ранних версиях.NET Framework есть некоторые проблемы с хранением файлов cookie в контейнере файлов cookie . Как это исправить?

5
задан Uhehesh 19 August 2012 в 20:33
поделиться