2011-02-04 2 views
2

Предполагая, что я использовал InternetExplorer.Application, чтобы програмировать веб-сайт, который, в свою очередь, установил cookie сеанса, как я могу получить доступ к значению этого файла cookie (который находится только в память в этот момент)?Использование InternetExplorer.Application для получения cookie сеанса

Единственный способ, которым я могу думать, будет включать в себя добавление некоторых сценариев на стороне клиента в Document.Body.InnerHTML, а затем вызов этих сценариев с помощью .Navigate ("javascript: functionName()"). Предполагая, что эта функция, в свою очередь, создаст элемент со значением рассматриваемого файла cookie, который я мог бы получить в этот момент.

Однако это кажется запутанным, и я еще не был успешным. Пожалуйста, скажите мне, что есть более простой способ.

EDIT: На мой вопрос был дан ответ в другом форуме Рика Стралла. По-видимому, я недостаточно читал документацию, потому что есть свойство document.cookie, которое даст мне ответ без какого-либо запутанного процесса.

Теперь, позвольте мне ответить на мой вопрос? :)

ответ

0

Для полноты, я ставлю свой ответ, который я добавил в вопросе выше, как ответ здесь.

Ответ прост, есть свойство document.cookie, которое даст значение, которое я искал. Трудность, я обнаружил, заключается в поиске официальной документации для DOM, доступной через объект InternetExplorer.Application. Intellisense в Visual Studio не показывал это свойство (по крайней мере, для меня), поэтому я предположил, что его не было.

Я думаю, я нашел официальный документ для DOM здесь:

http://msdn.microsoft.com/en-us/library/ms535862(v=VS.85).aspx

и свойство печенья специально здесь:

http://msdn.microsoft.com/en-us/library/ms533693(v=vs.85).aspx

Надеется, что это помогает кто-то избежать чеканка своего хвоста в будущее.

+0

Ум, отправляя свой код? У меня такая точная проблема – ltfishie

0

Благодаря brettbaggott для указания меня в правильном направлении. Вот код для тех, кто интересуется:

Private Declare Sub Sleep Lib "kernel32" _ 
    (ByVal dwMilliseconds As Long) 

Private Function getCookie() 
    Dim myIe As Object 
    Set myIe = CreateObject("InternetExplorer.Application") 
    myIe.Visible = False 
    myIe.Navigate "http://someurl" 
    Do While myIe.Busy 
     Sleep 20 
    Loop 
    getCookie= myIe.Document.cookie 
End Function 
Смежные вопросы