InternetSetCookie не хранит cookie во временных файлах Интернета - PullRequest
1 голос
/ 22 марта 2011

Я пытаюсь создать cookie на стороне клиента, используя wininet из приложения ac # winform.Поэтому я использую этот код:

[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]  
public static extern bool InternetSetCookie
(
    string lpszUrlName, 
    string lbszCookieName, 
    string lpszCookieData
);

private void btnRestaure_Click(object sender, EventArgs e)
{
    try
    {
        var result = InternetSetCookie("www.mydomain.com", "MyCookie",
                              "value=helloworld");
    }
    catch(Exception ex)
    {

    }
}

InternetSetCookie возвращает мне значение true, но я не могу найти файл cookie в папке Temporary Internet Files .Любая подсказка?

1 Ответ

3 голосов
/ 22 марта 2011

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

Я предполагаю, что такой файл cookie хранится только в оперативной памяти и не сериализуется на диск.И, скорее всего, только для вашего собственного процесса.


Если вы посмотрите документацию MSDN для InternetSetCookie , вы увидите:

Файлы cookie, созданные InternetSetCookie бездата истечения срока хранения хранится в памяти и доступна только в том же процессе, в котором они были созданы.Файлы cookie, содержащие дату истечения срока хранения, хранятся в каталоге windows \ cookies.

...