我正在尝试使计算机上的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")
}
无论如何,有没有获得有关无效操作的更多信息?
最佳答案
无论如何,有没有获得有关无效操作的更多信息?
不,那里没有。
但是,我得到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);