Windows Live Authentication
От: csharper  
Дата: 31.03.09 11:00
Оценка:
Добрый день.

Возникла проблема с Live! Конечно есть Live Client SDK, я его видел, и даже использовал. Но не понятно как сделать самую простейшую вещь. Я хочу сделать запрос к персональной странице Windows Live (http://xxx.live.com) с помощью HttpWebRequest. Собственно вопрос: как залогиниться в Live? Live SDK позволяет это сделать, и выдает ключи аутентификации, но они работают только с Live API. Я же хочу просто эмулировать запрос веб-браузера без участия пользователя. Логин и пароль, конечно, известен. IE/DOM тоже не годится в силу требований кросплатформенности.
Re: Windows Live Authentication
От: Воронков Василий Россия  
Дата: 31.03.09 14:43
Оценка:
Здравствуйте, csharper, Вы писали:

C>Добрый день.


C>Возникла проблема с Live! Конечно есть Live Client SDK, я его видел, и даже использовал. Но не понятно как сделать самую простейшую вещь. Я хочу сделать запрос к персональной странице Windows Live (http://xxx.live.com) с помощью HttpWebRequest. Собственно вопрос: как залогиниться в Live? Live SDK позволяет это сделать, и выдает ключи аутентификации, но они работают только с Live API. Я же хочу просто эмулировать запрос веб-браузера без участия пользователя. Логин и пароль, конечно, известен. IE/DOM тоже не годится в силу требований кросплатформенности.


Я бы сказал, что для подобной ф-ности, вами нужно копать на Лайв СДК, а поставить себе какой-нибудь HTTP сниффер, запустить тот же самый ИЕ и посмотреть, что он конкретно делает. Все, что он посылает серверу — сможете послать и вы используя все тот же самый HttpWebRequest
Re[2]: Windows Live Authentication
От: csharper  
Дата: 31.03.09 14:48
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, csharper, Вы писали:


C>>Добрый день.


C>>Возникла проблема с Live! Конечно есть Live Client SDK, я его видел, и даже использовал. Но не понятно как сделать самую простейшую вещь. Я хочу сделать запрос к персональной странице Windows Live (http://xxx.live.com) с помощью HttpWebRequest. Собственно вопрос: как залогиниться в Live? Live SDK позволяет это сделать, и выдает ключи аутентификации, но они работают только с Live API. Я же хочу просто эмулировать запрос веб-браузера без участия пользователя. Логин и пароль, конечно, известен. IE/DOM тоже не годится в силу требований кросплатформенности.


ВВ>Я бы сказал, что для подобной ф-ности, вами нужно копать на Лайв СДК, а поставить себе какой-нибудь HTTP сниффер, запустить тот же самый ИЕ и посмотреть, что он конкретно делает. Все, что он посылает серверу — сможете послать и вы используя все тот же самый HttpWebRequest


Это была одна из идей, но сниффить нормально не получается из-за SSL
Re[3]: Windows Live Authentication
От: x64 Россия  
Дата: 31.03.09 21:12
Оценка: 3 (1)
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" и т.п.
Re[4]: Windows Live Authentication
От: csharper  
Дата: 31.03.09 22:07
Оценка:
Здравствуйте, 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" и т.п.


Спасибо, снифит замечательно. Хотя решение будет опять же чистый хак
Re[5]: Windows Live Authentication
От: Аноним  
Дата: 01.04.09 09:03
Оценка:
x64>>Сам пользуюсь иногда, доволен. Ну и можно ещё в поиск забить что-то типа "HTTP Sniffer", "HTTP Analyzer" и т.п.
C>Спасибо, снифит замечательно. Хотя решение будет опять же чистый хак

дык у HttpWebRequest есть свойства куда запихиваюцца и пароль и имя юзера — и не надо хакать
Re[5]: Windows Live Authentication
От: Воронков Василий Россия  
Дата: 01.04.09 11:09
Оценка: +1
Здравствуйте, 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

Все вполне штатными средствами делается.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.