Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как вытащить куки из CookieContainer? 
:(
    Опции темы
Dims
Дата 2.10.2009, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 0
Всего: 11



Как вытащить куки из CookieContainer?

У меня есть объект типа CookieContainer. Count показывает, что там 2 элемента. Но как вытащить оттуда хотя бы один? 

Метод CookieCollection спрашивает какой-то Uri, но я его не знаю.

Что делать?
PM MAIL   Вверх
mr.DUDA
Дата 4.10.2009, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Без изврата никак, видимо так задумано что URI обязательно нужен:
Код
using System;
using System.Net;
using System.Reflection;
using System.Collections;

class Program
{
    static void Main()
    {
        // к примеру, вот такой контейнер
        CookieContainer container = new CookieContainer();
        container.SetCookies(new Uri("http://www.blablabla.com/kukuku"), "Name1=Value1,Name2=Value2");
        container.SetCookies(new Uri("http://opaopa.com/harasho/super"), "Name3=Value3");

        // теперь достанем кукисы
        FieldInfo fiDomainTable = typeof(CookieContainer).GetField("m_domainTable", BindingFlags.NonPublic | BindingFlags.Instance);
        Hashtable domainTable = (Hashtable)fiDomainTable.GetValue(container);
        foreach (string uri in domainTable.Keys)
        {
            object obPathList = domainTable[uri];
            FieldInfo fiList = obPathList.GetType().GetField("m_list", BindingFlags.NonPublic | BindingFlags.Instance);
            SortedList pathList = (SortedList)fiList.GetValue(obPathList);
            foreach (string key in pathList.Keys)
            {
                CookieCollection cookies = (CookieCollection)pathList[key];
                foreach (Cookie cookie in cookies)
                {
                    // вот и всё :)
                    Console.WriteLine(uri + ": " + cookie.ToString());
                }
            }
        }
    }
}



--------------------
user posted image
PM MAIL WWW   Вверх
Dims
Дата 4.10.2009, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 0
Всего: 11



Ну я-то не против, что Uri нужен. Но почему его нельзя получить в каком-то другом месте? Должен же быть способ, иначе функция просто бессмысленна!
PM MAIL   Вверх
mr.DUDA
Дата 4.10.2009, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Dims @  4.10.2009,  13:46 Найти цитируемый пост)
Но почему его нельзя получить в каком-то другом месте?

это Большая Тайна Майкрософт, видимо индусам мало платили или они забыли List<Uri> выставить, или это карма...


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0516 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.