Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Работа с Cookies Добавлено: 24.11.10 11:58  

Автор вопроса:  Vlad
Подскажите как грамотно вытащить информацию из файла Cookies IE и передать ее в запрос?
Сам запрос выполняю через HttpWebRequest

Dim myHttpWebRequest As HttpWebRequest = HttpWebRequest.Create(Url)

myHttpWebRequest.CookieContainer = New CookieContainer()


притаком запросе CookieContainer пуст, как я понимаю он только объявлен и туда необходимо добавить через метод Add саму cookies. Так вот как ее извлечь из ф. user@url[1].txt который находится в системной папке cookies

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #1 Добавлено: 24.11.10 13:42
WebClient используй.

Ответить

Номер ответа: 2
Автор ответа:
 Vlad



Вопросов: 6
Ответов: 22
 Профиль | | #2 Добавлено: 24.11.10 14:33
спасибо AgentFire, но в WebClient как я понял Cookies также определяются из полученного HTTP ответа. А мне нужно определить наличие файла кук и если таков имеется занесение данных в запрос.
Значит так и оставлю поленейное считывание данных из файла user@url[1].txt
  1.  
  2.  
  3. Sub Cook()
  4.         'определяем системный каталог Cookie
  5.         Dim Di As New DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.Cookies))
  6.         Dim Re As String
  7.         Dim fCoo As String = "искомая куки"
  8.  
  9.         'ищем наличие файла кук для нашего сайта
  10.         For Each Files As FileInfo In Di.GetFiles
  11.             If Files.Extension = ".txt" Then
  12.                 Re = Path.GetFileName(Files.Name.ToString)
  13.                 If Re.IndexOf(Url) > 0 Then        'Url тип String - сам сайт без точки и домена первого уровня
  14.                     Dim rs As StreamReader = File.OpenText(Di.FullName & "\" & Re)
  15.                     Dim Temp As String = Nothing
  16.  
  17.                     Do
  18.                         Temp = rs.ReadLine
  19.  
  20.                         If Temp = fCoo Then
  21.                             Temp = rs.ReadLine
  22.                             Exit Do
  23.                         End If
  24.                     Loop While rs.EndOfStream
  25.  
  26.                     rs.Dispose()
  27.                     rs.Close()
  28.  
  29.                     myCookie = Trim(Temp)
  30.                     Exit For
  31.                 End If
  32.             End If
  33.         Next
  34.     End Sub




ну а потом через метод Add добовляю в контейнер куки если таковы были получены и выполняю сам запрос.

Ответить

Номер ответа: 3
Автор ответа:
 Vlad



Вопросов: 6
Ответов: 22
 Профиль | | #3 Добавлено: 24.11.10 14:46
а кто нибудь знает в каком формате записывается время жизни Cookies
т.е. если я имею файл кук и знаю что тут записана одна единственная переменная,


values имя куки
4 значение куки
site.ru/ сайт к которому принадлежит кука
1536 не известно
1956695040 не известно
30117010 не известно
2086681536 не известно
30116809 не известно
* конец записи куки

так же не понятно где указано для какого раздела принадлежит кука т.е. как я понял если не указано, то принимается весь сайт path="/"

если кому то известна структура записи кук для IE - поделитесь соображениями или дайте ссылку



то что означают остальные цифры

Ответить

Номер ответа: 4
Автор ответа:
 Vlad



Вопросов: 6
Ответов: 22
 Профиль | | #4 Добавлено: 24.11.10 14:50
site.ru/ - это наверное и есть сам путь согласно которого эта кука действует

Ответить

Номер ответа: 5
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #5 Добавлено: 24.11.10 16:08
Vlad пишет:
А мне нужно определить наличие файла кук и если таков имеется занесение данных в запрос.

А как это мешает использованию WebClient ???

Vlad пишет:
Значит так и оставлю поленейное считывание данных из файла user@url[1].txt

Весьма, я бы сказал неоптимизированно. Если будет время - поработай, код можно сократить в 2-5 раз.

Vlad пишет:
а кто нибудь знает в каком формате записывается время жизни Cookies
у куков есть два значения - это время создания и период действия. и лучш

Vlad пишет:
если кому то известна структура записи кук для IE
во первых, желательно, сам понимаешь, не ИЕ, а во вторых, ну в инете чтоли лень самому посмотреть, других заставляешь?))

Ответить

Номер ответа: 6
Автор ответа:
 Vlad



Вопросов: 6
Ответов: 22
 Профиль | | #6 Добавлено: 24.11.10 16:59
ув. AgentFire я не кого не заставляю, а перед тем как спрашивать просто считаю бесстыдством не посмотреть в google самому. Поэтому говорю, что смотрел. Если вам не трудно выложите ссылку где четко про время жизни описано. Везде написано что дата заносится Set-Cookie: expires=Thu, 25-Nov-2010 12:33:17 GMT; а у меня в файле
1536
1956695040
30117010
2086681536
30116809
как я понимаю это что то типа TimeStamp и если это так, то как его перевести в понятную дату
вот от этого и возникает каша в голове из которой пытаюсь найти решение

Ответить

Номер ответа: 7
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #7 Добавлено: 24.11.10 17:30
я бы сказал, что это самомозахизм. нужно либо найти более корректные пути, ну либо действительно ковырять, как эти циферки могут быть соотнесены к expires=. если уж прям таки необходимо...

а вот к "expires=Thu, 25-Nov-2010 12:33:17 " привязаны именно вышеописанные тобой цифрыы?

Ответить

Номер ответа: 8
Автор ответа:
 Vlad



Вопросов: 6
Ответов: 22
 Профиль | | #8 Добавлено: 24.11.10 17:52
за те цифры, что указал выше я не уверен что именно к тому запросу принадлежать а вот эти
Set-Cookie: expires=Thu, 25-Nov-2010 14:48:03 GMT
одно и тоже (в этом уверен)
1536
3272643456
30117039
4054189952
30116838

Ответить

Номер ответа: 9
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #9 Добавлено: 25.11.10 00:13
А зачем вам этот expires? Это чисто клиентская штука, на сервер не передается

Ответить

Номер ответа: 10
Автор ответа:
 Vlad



Вопросов: 6
Ответов: 22
 Профиль | | #10 Добавлено: 25.11.10 09:35
А зачем вам этот expires? Это чисто клиентская штука, на сервер не передается

Да я понимаю что expires не передается на сервер. В нем хранится дата создания и время жизни кук. Исходя из этого сам браузер когда кука просрочена он ее удаляет, а на место ее записывает новую. А для меня она нужна чтоб сделать так же, чтоб не передавать просроченную куку на сервер.

Ответить

Номер ответа: 11
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #11 Добавлено: 25.11.10 09:39
а в чем дело? передай. ничего критичного не будет, просто сервер даст новую.

Ответить

Номер ответа: 12
Автор ответа:
 Vlad



Вопросов: 6
Ответов: 22
 Профиль | | #12 Добавлено: 25.11.10 09:59
Fiddler показал, что при передаче старой куки сервер в ответ новую не вернул (и не должен, т.к. он не отслеживает на явность кук. запрос без кук - выдать куки, запрос к кукой выдать данные), а вот при использовании ие. тот в свою очередь старую не передавал на сервер.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам