我希望能够在重新启动应用程序时保留Web浏览器控件的状态。例如,如果我登录到两个小时cookie过期的站点,我退出应用程序并在两小时内重新启动它,我想继续相同的会话。 (如果我一直打开控件,会话将保持相同的方式)。与未过期的cookie相同,似乎被吹走了。
有没有人知道任何解决方案,或者可以指出我可以用来保存和恢复会话的下划线activex代码?我很确定通过托管代码这是不可能的。
答案 0 :(得分:2)
[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安全模式。但应该是一个很好的起点。
答案 1 :(得分:-1)
未过期的Cookie是存储在内存中的会话Cookie,当浏览器关闭时会丢失。
会话数据未存储在cookie中。它存储在服务器上。默认会话超时为20分钟。
但cookie是访问会话的关键。
为了让这个工作,你需要: