簡體   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