Чтение XML-файла с веб-сайта с использованием аутентификации на основе форм - PullRequest
0 голосов
/ 06 марта 2011

Существует ли стандартный способ чтения XML-файла с веб-сайта, который использует аутентификацию на основе форм?Мы хотим прочитать файл в настольном приложении.

спасибо - Дейв

Ответы [ 3 ]

2 голосов
/ 06 марта 2011

Если вы говорите о Аутентификации с помощью ASP.NET Forms , это будет двухэтапный процесс:

  1. Отправка HTTP-запроса на страницу входа в систему с отправкой имени пользователя и пароля и захватом файла cookie аутентификации, отправленного сервером
  2. Отправить HTTP-запрос в скрипт, возвращающий XML-файл, отправляющий куки-файл аутентификации вместе с запросом

Вот пример использования пользовательского WebClient :

public class CookieAwareWebClient : WebClient
{
    public CookieContainer Cookies { get; private set; }
    public CookieAwareWebClient()
    {
        Cookies = new CookieContainer();
    }

    protected override WebRequest GetWebRequest(Uri address)
    {
        var request = base.GetWebRequest(address) as HttpWebRequest;
        request.CookieContainer = Cookies;
        return request;
    }
}

class Program
{
    static void Main()
    {
        using (var client = new CookieAwareWebClient())
        {
            client.UploadValues("http://www.foo.com/login.aspx", new NameValueCollection
            {
                { "username", "foo" },
                { "password", "secret" },
            });
            client.DownloadFile("http://www.foo.com/foo.xml", "foo.xml");
        }
    }
}

Конечно, в реальной жизни все может быть сложнее, потому что в зависимости от сайта вам может потребоваться отправить вместе с ViewState и другим специфическим дерьмом ASP.NET вместе с запросом.

1 голос
/ 06 марта 2011

Вам нужно будет использовать HTTPWebRequest / HTTPWebResponse примерно в следующих шагах:

1: использовать запрос для отправки имени пользователя и пароля на веб-сайт. 2: Сохранить куки (я предполагаю, что куки).будет содержать подтверждение того, что логин работал) 3: Используйте другой запрос, включая эти куки, чтобы получить XML.

Чтобы найти код, который для первоначального запроса вам нужно будет посмотреть на исходный кодСтраница входа, чтобы увидеть действие отправки, а затем воспроизвести это через ваш запрос.Вы можете использовать fiddler, firebug и т. Д., Чтобы помочь в этом.

1 голос
/ 06 марта 2011

отправьте учетные данные в запросе http, в ответе будет файл cookie для аутентификации, который вы должны будете использовать для следующих запросов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...