InternetSetCookie不会在临时Internet文件中存储cookie

时间:2011-03-22 12:12:39

标签: c# cookies wininet

我正在尝试使用来自c#winform应用程序的wininet在客户端创建cookie。 所以我使用这段代码:

[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,但我无法在 Temporary Internet Files 文件夹中找到该Cookie。 任何线索?

1 个答案:

答案 0 :(得分:3)

我认为如果您没有指定过期日期,那么您可以创建会话cookie。如果您想要持久性cookie,请尝试指定过期日期。

我认为这样的cookie只存储在RAM中而不是序列化到磁盘上。而且很可能只对您自己的流程可见。


如果您查看MSDN documentation for InternetSetCookie,则会看到:

  

InternetSetCookie创建的没有过期日期的Cookie存储在内存中,只能在创建它们的同一进程中使用。包含截止日期的Cookie存储在windows \ cookies目录中。