2017-09-14 105 views
6

我有一個身份驗證cookie,在我登錄屏幕後在本地環境中設置。該cookie已被設置爲永久性的,並且將來有7天的超時期限。是否有可能在Visual Studio調試會話之間保持Cookie

enter image description here

當我結束我的調試會話,並開始調試陸續建立cookie是不存在的。這發生在每個瀏覽器上。調試會話完成後,有沒有辦法讓Visual Studio記住持久cookie?

+0

一些餅乾肯定存在。我通過在VS2017中運行一個項目打開了一個調試瀏覽器,登錄到另一個設置cookie的應用程序。關閉VS2017。重新打開該項目,cookie仍然存在。你的問題可能會更微妙 –

+1

你如何讀寫Cookies?你是不是陷入了使用響應對象的菜鳥錯誤?你使用「Form」標籤嗎?您是否使用開發工具來確定cookie已丟失或請顯示代碼? –

+0

請添加一些代碼,顯示您如何閱讀和編寫cookies –

回答

0

我發現的解決方案是讓.NET Core MVC的新實例不會在全新的窗口中打開,而是在現有的窗口中打開。我換了一個設定

1)工具菜單 2)選項... 3)調試>常規 4)取消選中 「啓用ASP.NET JavaScript調試」

當我運行與F5應用一個實例在現有的chrome實例中啓動,我可以重用已經存在的cookie。檢查該盒子後,它總是會打開一個新的Chrome實例,而Cookie不存在。

0

讓我們快速瀏覽一下如何做餅乾持久性

//Creting a Cookie Object 
HttpCookie _userInfoCookies = new HttpCookie("UserInfo"); 

//Setting values inside it 
_userInfoCookies["UserName"] = "Abhijit"; 
_userInfoCookies["UserColor"] = "Red"; 
_userInfoCookies["Expire"] = "5 Days"; 

//Adding Expire Time of cookies 
    _userInfoCookies.Expires = DateTime.Now.AddDays(5); 

//Adding cookies to current web response 
Response.Cookies.Add(_userInfoCookies); 

現在,一旦你已經設置與餅乾到期時,它會被存儲在硬盤驅動器,直至到期或用戶手工刪除或清除所有餅乾。如果您希望您的Cookie需要在您之前提到的到期時間之前過期,則您只需覆蓋Cookie信息即可。

HttpCookie _userInfoCookies = new HttpCookie("UserInfo"); 
    //Adding Expire Time of cookies before existing cookies time 
    _userInfoCookies.Expires = DateTime.Now.AddDays(-1); 
    //Adding cookies to current web response 
    Response.Cookies.Add(_userInfoCookies); 

所以就工作到期。 並看看This

+0

我實際上已經設置了cookie的到期。如果您查看上面的圖片,我將在未來7天內設置到期日。我使用了上面列出的相同代碼,創建了cookie,停止了visual studio,然後再次啓動它。該cookie沒有持續。 VS在調試會話後繼續刪除它們。 – aokelly

+0

於是把它們寫入文件一起調試。 – AminAmiriDarban

0

假設你是在IIS下使用VS和ASPNET 4.5或核1.0/2.0,檢查調試輸出在啓動時,你可能會看到:

「無論是用戶個人資料,也HKLM註冊表可用。使用臨時密鑰庫。 「

這是由IIS使用的DataProtection鍵造成的。按照這個short blog post來解決

相關問題