Ранее я спрашивал в StackOverflow, как анализировать XML, загруженный программно моим приложением ASP.net. Под этим я подразумеваю, что пользователь посещает https://www.example.com/page1.aspx. Кодовый код для page1.aspx должен каким-то образом загружать и анализировать XML-файл, расположенный по адресу https://www.example.com/foo.xml.
Я получил хорошие ответы о том, как анализировать XML. Однако мне не повезло с возможностью извлечения XML с моего безопасного HTTPS-сервера.
Я смотрю на ситуацию, когда https://www.example.com/foo.xml аутентифицирует запросы с помощью cookie. (сторонняя система, а не проверка подлинности с помощью форм). Ответ, который я получил на мой вопрос о том, как загрузить и проанализировать XML, предложил мне использовать класс System.Net.WebClient
. Я прочитал, что класс WebClient должен быть настроен для работы с файлами cookie. Поэтому я написал следующий код:
public class WebClientWithCookies : WebClient
{
private CookieContainer m_container = new CookieContainer();
public CookieContainer CookieContainer
{
get { return m_container; }
set { m_container = value; }
}
public void addCookie(Cookie cookie)
{
m_container.Add(cookie);
}
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
if ( request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = m_container;
}
return request;
}
} // end class
Однако, когда запрос получен на https://www.example.com/foo.xml,, в запросе нет файлов cookie, и он не работает.
Как обойти эту проблему?