C#删除WebBrowser控件Session

转载:http://www.hackdig.com/?02/hack-1464.htm

因为要搞一个类似帐号多开的小辅助,但是很坑爹的发现,在一个WebBrowser中,就算重新登录,显示的仍然是上一个帐号,尝试清空cookie无效,目测就是session的问题,因为session信息是属于httponly cookie,所以不能直接清除。

搜了一圈,最终在stackoverflow上找到答案。

清除httponly的cookie,可以借助winapi的InternetSetOption()。

using System.Runtime.InteropServices;

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

然后在需要清除session的地方使用

InternetSetOption(IntPtr.Zero, INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0);

再次跳转之后就会发现session已经清除。

原文地址:https://www.cnblogs.com/c-x-a/p/4921065.html