繁体   English   中英

在应用程序重新启动后保留cookie C#Webbrowser控件

[英]keeping cookies after application restart c# webbrowser control

我希望能够在重新启动应用程序时保留Web浏览器控件的状态。 例如,如果我登录到Cookie过期两个小时的网站,则退出该应用程序并在两个小时内重新启动它,我想继续同一会话。 (如果我一直打开控件,则以相同的方式保留会话)。 Cookie不会过期的饼干似乎也被吹走了。

有谁知道任何解决方案,或者可以指出我要用来保存和恢复会话的强调ActiveX代码? 我很确定通过托管代码这是不可能的。

    [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
    public static extern bool InternetGetCookie(
        string lpszUrlName,
        string lpszCookieName,
        StringBuilder lpszCookieData,
        [MarshalAs(UnmanagedType.U4)]
ref int lpdwSize
    );


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

我目前正在对此进行测试,不确定是否可以在较新的Vista / Win7安全模式下使用。 但是应该是一个很好的起点。

当浏览器关闭时,不会过期的cookie是存储在内存中的会话cookie。

会话数据未存储在cookie中。 它存储在服务器上。 默认会话超时为20分钟。

但是cookie是访问会话的关键。

因此,要使其正常工作,您需要:

  • 确保cookie不会丢失,设置有效期限
  • 确保会话信息不会丢失,将会话的默认超时设置为与cookie到期相同

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM