Добрый день.
Возникла проблема с Live! Конечно есть Live Client SDK, я его видел, и даже использовал. Но не понятно как сделать самую простейшую вещь. Я хочу сделать запрос к персональной странице Windows Live (
http://xxx.live.com) с помощью HttpWebRequest. Собственно вопрос: как залогиниться в Live? Live SDK позволяет это сделать, и выдает ключи аутентификации, но они работают только с Live API. Я же хочу просто эмулировать запрос веб-браузера без участия пользователя. Логин и пароль, конечно, известен. IE/DOM тоже не годится в силу требований кросплатформенности.
Здравствуйте, csharper, Вы писали:
C>Добрый день.
C>Возникла проблема с Live! Конечно есть Live Client SDK, я его видел, и даже использовал. Но не понятно как сделать самую простейшую вещь. Я хочу сделать запрос к персональной странице Windows Live (http://xxx.live.com) с помощью HttpWebRequest. Собственно вопрос: как залогиниться в Live? Live SDK позволяет это сделать, и выдает ключи аутентификации, но они работают только с Live API. Я же хочу просто эмулировать запрос веб-браузера без участия пользователя. Логин и пароль, конечно, известен. IE/DOM тоже не годится в силу требований кросплатформенности.
Я бы сказал, что для подобной ф-ности, вами нужно копать на Лайв СДК, а поставить себе какой-нибудь HTTP сниффер, запустить тот же самый ИЕ и посмотреть, что он конкретно делает. Все, что он посылает серверу — сможете послать и вы используя все тот же самый HttpWebRequest
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Здравствуйте, csharper, Вы писали:
C>>Добрый день.
C>>Возникла проблема с Live! Конечно есть Live Client SDK, я его видел, и даже использовал. Но не понятно как сделать самую простейшую вещь. Я хочу сделать запрос к персональной странице Windows Live (http://xxx.live.com) с помощью HttpWebRequest. Собственно вопрос: как залогиниться в Live? Live SDK позволяет это сделать, и выдает ключи аутентификации, но они работают только с Live API. Я же хочу просто эмулировать запрос веб-браузера без участия пользователя. Логин и пароль, конечно, известен. IE/DOM тоже не годится в силу требований кросплатформенности.
ВВ>Я бы сказал, что для подобной ф-ности, вами нужно копать на Лайв СДК, а поставить себе какой-нибудь HTTP сниффер, запустить тот же самый ИЕ и посмотреть, что он конкретно делает. Все, что он посылает серверу — сможете послать и вы используя все тот же самый HttpWebRequest
Это была одна из идей, но сниффить нормально не получается из-за SSL
C>Это была одна из идей, но сниффить нормально не получается из-за SSL
Существуют решения, позволяющие снифить даже SSL, правда только для IE, насколько мне известно, хотя может быть уже и для других сделали, технически это не сложно. Короче, смотри не на низкоуровневые сниферы типа Wireshark, а что-нибудь повыше, типа вот
этого. Ага,
ну точно, уже и Firefox умеют снифать:
HTTP Analyzer can show you unencrypted data sent over HTTPS / SSL connections as the same level of detail as HTTP. HTTPS is available if the application uses the Microsoft WININET API , Mozilla NSS API or OpenSSL API.
Сам пользуюсь иногда, доволен. Ну и можно ещё в поиск забить что-то типа "HTTP Sniffer", "HTTP Analyzer" и т.п.
Здравствуйте, x64, Вы писали:
C>>Это была одна из идей, но сниффить нормально не получается из-за SSL
x64>Существуют решения, позволяющие снифить даже SSL, правда только для IE, насколько мне известно, хотя может быть уже и для других сделали, технически это не сложно. Короче, смотри не на низкоуровневые сниферы типа Wireshark, а что-нибудь повыше, типа вот этого. Ага, ну точно, уже и Firefox умеют снифать:
x64>x64>HTTP Analyzer can show you unencrypted data sent over HTTPS / SSL connections as the same level of detail as HTTP. HTTPS is available if the application uses the Microsoft WININET API , Mozilla NSS API or OpenSSL API.
x64>Сам пользуюсь иногда, доволен. Ну и можно ещё в поиск забить что-то типа "HTTP Sniffer", "HTTP Analyzer" и т.п.
Спасибо, снифит замечательно. Хотя решение будет опять же чистый хак
x64>>Сам пользуюсь иногда, доволен. Ну и можно ещё в поиск забить что-то типа "HTTP Sniffer", "HTTP Analyzer" и т.п.
C>Спасибо, снифит замечательно. Хотя решение будет опять же чистый хак
дык у HttpWebRequest есть свойства куда запихиваюцца и пароль и имя юзера — и не надо хакать
Здравствуйте, csharper, Вы писали:
C>Спасибо, снифит замечательно. Хотя решение будет опять же чистый хак
Да не особо и хак-то. Суть скорее всего будет сводиться к тому, чтобы смотреть, что хочет хост увидеть в кукисах (Set-Cookie), соответственно, парсить эту строку и формировать свой "лист" кукисов, которые передаются в хедере запроса Cookie. Обычно — это стандартный "протокол" общения.
Есть кое-какие примеры.
Парсинг и добавление кукисов:
http://widestream.svn.sourceforge.net/viewvc/widestream/Source/Murray/DownloadManager/Network/Protocols/Http/HttpCookies.cs?revision=245&view=markup
http://widestream.svn.sourceforge.net/viewvc/widestream/Source/Murray/DownloadManager/Network/Protocols/Http/HttpHeaders.cs?revision=296&view=markup
и пр.
Общение с серверов через "кукисы", чтобы скачать файл, который предполагалось качать только через браузер:
http://widestream.svn.sourceforge.net/viewvc/widestream/Source/Murray/DownloadManager/Network/Adapters/DoujinstyleAdapter.cs?revision=251&view=markup
Или вообще "фоновый" сабмит формы и авторизация на сервере с целью получения сессионного ИД:
http://widestream.svn.sourceforge.net/viewvc/widestream/Source/Murray/DownloadManager/Network/Adapters/VbulletinAdapter.cs?revision=252&view=markup
Все вполне штатными средствами делается.