Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление Cookies, как правильно? 
:(
    Опции темы
SimBiOd
Дата 27.8.2006, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 21.8.2005

Репутация: нет
Всего: 2



Удалял кукисы получая директорию при помощи SHGetFolderPath с параметром CSIDL_COOKIES, потом поиск фалов в директории и удаление. Но кукисы не удалялись коректно, глянув в MSDN увидел следущее:

Цитата(MSDN)
You cannot directly delete a cookie on a user's computer. However, you can direct the user's browser to delete the cookie by setting the cookie's expiration date to a past date. The next time a user makes a request to a page within the domain or path that set the cookie, the browser will determine that the cookie has expired and remove it.

У меня возник вопрос, как я могу это сделать для всех кук, если я даже не знаю с какого они сайта и.т.д? :wall:
PM MAIL   Вверх
sOckets
Дата 27.8.2006, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ЖгуПоПонедельникам
**


Профиль
Группа: Участник
Сообщений: 298
Регистрация: 24.8.2006
Где: ws2.lib

Репутация: нет
Всего: 2



Я не понял вопроса , тебе нужно просто удалить все куки ?


--------------------
Я Будущий сотрудник Google Inc. Юзаем Google Code Search для поиска исходников. Юзаем GMail как почту.
PM   Вверх
SimBiOd
Дата 27.8.2006, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 21.8.2005

Репутация: нет
Всего: 2



Цитата(ilovewinsocks @ 27.8.2006,  18:45)
Я не понял вопроса , тебе нужно просто удалить все куки ?

Да.
PM MAIL   Вверх
sOckets
Дата 27.8.2006, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ЖгуПоПонедельникам
**


Профиль
Группа: Участник
Сообщений: 298
Регистрация: 24.8.2006
Где: ws2.lib

Репутация: нет
Всего: 2



Цитата

Но кукисы не удалялись коректно

Что это значит ? на половину удалялись ? smile

ну дык , ищи папку с куками , потом скань файлы и ...
Код

BOOL DeleteFile(
  LPCTSTR lpFileName
);

или я что-то не догнал ? обьясни пожалуйста


--------------------
Я Будущий сотрудник Google Inc. Юзаем Google Code Search для поиска исходников. Юзаем GMail как почту.
PM   Вверх
SimBiOd
Дата 27.8.2006, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 21.8.2005

Репутация: нет
Всего: 2



Цитата(ilovewinsocks @ 27.8.2006,  19:32)
или я что-то не догнал ? обьясни пожалуйста

Читай цитату из MSDN в первом посте...
PM MAIL   Вверх
SimBiOd
Дата 27.8.2006, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 21.8.2005

Репутация: нет
Всего: 2



В общем нашёл вот такой код:
Код
BOOL MHTTP_KillCookie(const char *url, const char *name)
{
    BOOL ret_code = FALSE;
    char* cook;
    const char sReset[] = " = 0; expires = Sat, 01-Jan-1990 00:00:00 GMT";

    cook = (char*)heap_alloc(lstrlen(name) + sizeof(sReset));
    if(!cook)
        return ret_code;

    lstrcpy(cook, name);
    lstrcat(cook, sReset);
    ret_code = InternetSetCookie(url, NULL, cook);
   
    heap_free(cook);
    return ret_code;
}

// ############################################################################

void MHTTP_KillCookies(const char *url)
{
    char serv[255];     //адрес сервера где убиваем Cookie

    //удаляем все временные файлы интернета
    MHTTP_DelTempFiles();

    // ------------------------------------------------------------------------
    // Взятие с url адреса сервера serv

   // здесь строки вида "http://google.com/path?query" превращаются в 
   // строки вида "http://google.com", тобишь возвращается сервер от полного адреса коль не ясно

    HTTPT_url hurl;
    HTTPT_UrlParse(&hurl, url);
    HTTPT_UrlGetServAddr(hurl, serv);

    // ------------------------------------------------------------------------

    DWORD size;
    InternetGetCookie(serv, NULL, 0, &size);
    if (!size)
        return;

    char*   data = (char*)heap_alloc(size);
    InternetGetCookie(serv, NULL, data, &size);

    // ------------------------------------------------------------------------
    // перебор имён cookie

    char cookieName[255];
    char *ch1, *ch2;
    ch1 = data;

    while (1)
    {
        // --------------------------------------------------------------------
        // имя

        ch2 = StrStr(ch1, "=");
        if (!ch2)
            break;
        lstrcpyn(cookieName, ch1, ch2 - ch1 + 1);

        // --------------------------------------------------------------------
        //сброс

        MHTTP_KillCookie(serv, cookieName);

        // --------------------------------------------------------------------
        // следующий cookie

        ch1 = StrStr(ch1, "; ");
        if (!ch1)
            break;
        ch1 += 2;
    }

    heap_free(data);
}

Остался вопрос о том, как узнать все Urlы?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




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


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

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