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

Posted

技术标签:

【中文标题】InternetSetCookie 不在 Internet 临时文件中存储 cookie【英文标题】:InternetSetCookie does not store cookie in Temporary Internet Files 【发布时间】:2011-03-22 12:12:39 【问题描述】:

我正在尝试使用来自 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】:

我认为如果您不指定到期日期,那么您将创建一个会话 cookie。如果您想要持久性 cookie,请尝试指定过期日期。

我假设这样的 cookie 仅存储在 RAM 中,而不是序列化到磁盘。而且很可能只对您自己的进程可见。


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

由 InternetSetCookie 创建的没有过期日期的 Cookie 存储在内存中,并且仅在创建它们的同一进程中可用。包含过期日期的 Cookie 存储在 windows\cookies 目录中。

【讨论】:

非常感谢,这正是我的问题。我相信下次我应该更仔细地阅读文档:p @BrunoLeDuic 你找到如何在过期文件夹中写入的方法了吗? @CodeInChaos 你能告诉我如何将它存储在磁盘中吗? @EhsanSajjad 可能是通过指定到期日期。但是我自己从来没有使用过那个API,所以我不知道细节。 “包含过期日期的 Cookie 存储在 windows\cookies 目录中。”

以上是关于InternetSetCookie 不在 Internet 临时文件中存储 cookie的主要内容,如果未能解决你的问题,请参考以下文章

软件测试的cookie测试

在 WebBrowser 控件中设置 cookie

Warning: Using a password on the command line inte

我的电脑显卡Inte(R)HDGraphics630如何安装最新的显卡驱动?

使用Intel DCI/Inte System Debugger跟踪主机启动过程 中CSME/Bios信息

使用Intel DCI/Inte System Debugger跟踪主机启动过程 中CSME/Bios信息