β

C#删除WebBrowser控件Session

leo108's blog 1486 阅读

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

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

清除httponly的cookie,可以借助winapi的InternetSetOption()。 http://leo108.com

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的地方使用

采集者烂JJ

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

再次跳转之后就会发现session已经清除。 未经允许严禁转载

作者:leo108's blog
专注于技术,切不可沉湎于技术
原文地址:C#删除WebBrowser控件Session, 感谢原作者分享。