【问题标题】:InternetSetCookie returns ERROR_INVALID_OPERATIONInternetSetCookie 返回 ERROR_INVALID_OPERATION
【发布时间】:2015-07-14 13:59:53
【问题描述】:

我正在尝试使我机器上的 cookie 过期。当我调用 wininet.dll InternetSetCookie 它返回 FALSE 并且错误代码是 4317 这是通用的 ERROR_INVALID_OPERATION

[DllImport("wininet.dll", SetLastError = true)]
private static extern bool InternetSetCookie(string lpszUrlName, string lpszCookieName, string lpszCookieData);

public void Main()
{
     InternetSetCookie("http://example.com","cookieName","somevalue;expires=Mon, 01 Jan 0001 00:00:00 GMT")
}

是否有更多关于哪些操作无效的信息?

【问题讨论】:

    标签: c# wininet


    【解决方案1】:

    是否有更多关于哪些操作无效的信息?

    不,没有。

    但是,我得到了ERROR_INVALID_OPERATION,因为我试图设置一个已经设置的cookie(我无法使用InternetSetCookie() 编辑cookie)。我必须使用这个function 清除所有 cookie。你需要先声明它:

    [DllImport("wininet.dll", SetLastError = true)]
    private static extern bool InternetSetOption(IntPtr hInternet,int dwOption,IntPtr lpBuffer, int lpdwBufferLength);
    

    然后你可以通过以下方式使用它来清除 cookie (Note that 42 is INTERNET_OPTION_END_BROWSER_SESSION):

    bool isCleared=InternetSetOption(IntPtr.Zero, 42, IntPtr.Zero, 0);
    

    【讨论】:

      猜你喜欢
      • 2017-11-20
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-23
      • 2018-09-15
      相关资源
      最近更新 更多