Программно установить куки в Internet Explorer - PullRequest
6 голосов
/ 05 января 2011

Начну с объяснения сценария:

У меня есть браузер IE на компьютере A. Внутри IE у меня есть плагин, чтобы я мог получить доступ к объекту документа, чтобы я мог получить cookie в данный момент времени.

Я хочу перенести этот файл cookie в новый браузер на другом компьютере B.

Для запуска браузера на новом компьютере BI используйте объект InternetExplorer, я могу управлять браузером, используя экземпляр объекта, но я не знаю, как «внедрить» cookie первого компьютера A в новый создан браузер IE.

Я пробовал два способа.

  • Сначала я попытался записать cookie-файл перед запуском браузера с использованием WinInet API InternetSetCookie .

  • И во-вторых, я попытался перехватить событие BeforeNavigate2 и установить cookie в заголовок HTTP-запроса.

Но ни один из них не сработал: (

Можно ли установить cookie в новом Internet Explorer перед переходом на веб-сайт и, следовательно, иметь возможность сохранить версию, которую пользователь имел на своем предыдущем компьютере?

Спасибо:)

ОБНОВЛЕНИЕ : У меня все еще есть эта проблема, и я провел некоторые другие исследования с использованием wireshark.

В случае BeforeNavigate2 IExplore просто игнорирует значение «Cookie:» в заголовке.

В случае InternetSetCookie кажется, что он работает правильно. Он создает тот же файл, который создает обычная навигация IExplore, но когда вы переходите на эту страницу, IE игнорирует файл, содержащий cookie.

Код, который я использую для записи файла cookie:

string cookie = "COOKIEVALUES";
InternetSetCookie("http://www.facebook.com/", "", cookie+";expires=Sat, 08-Jan-2014 00:00:00 GMT");

Ответы [ 3 ]

3 голосов
/ 05 января 2011

InternetSetCookie () должен быть правильным способом сделать это.Вы убедились, что устанавливаете правильные значения?Вы используете канонизированный URL?Вы указываете срок годности?Неправильное получение URL-адреса (я не уверен, что такие вещи, как конечный / имеют значение или нет) будут иметь очевидные последствия, и если вы не установите дату истечения срока действия, cookie будет храниться в памяти только для текущего процесса.1001 *

0 голосов
/ 14 марта 2012

http://social.msdn.microsoft.com/Forums/ar/ieextensiondevelopment/thread/d46f0797-5ddb-40c0-af71-2178fa019da8

Проверьте этот текст

После сравнения 2 сред, где код и работает, а где нет, я обнаружил, что на компьютере, где код не работаету меня есть каталог Cookies под моей учетной записью пользователя, и я вижу файл с файлами cookie, которые я не могу стереть.

На другом компьютере, где работает код, у меня нет каталога Cookies подпользователь вошел в систему, хотя я вижу файл в каталоге временных файлов Интернета.

0 голосов
/ 07 марта 2011

Во-первых, попробуйте использовать такой инструмент, как IEdebugBar - он покажет вам все отправленные и полученные заголовки в чистом виде.

Во-вторых, вы убедились, что куки не отправляются на сервер?Поскольку кажется, что вы пытаетесь «украсть» сессию Facebook, я бы предположил, что Facebook будет игнорировать сессионный cookie-файл, исходящий из браузера с другим IP, UserAgent и т. Д. Вы учли это?

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