是否可以在visual studio调试会话之间保留cookie

时间:2017-09-14 18:19:04

标签: c# visual-studio authentication cookies

我在本地环境中点击登录屏幕后设置了一个身份验证cookie。该cookie已设置为持久性,并且将来会被授予7天的超时期限。

enter image description here

当我结束调试会话并在另一次构建之后开始调试时,cookie不存在。这适用于每个浏览器。有没有办法让Visual Studio在调试会话完成后记住持久性cookie?

3 个答案:

答案 0 :(得分:2)

我发现的解决方案是使新的.NET Core MVC实例不会在一个全新的窗口中打开,而是在现有的窗口中打开。我改变了一个设置

1)工具菜单 2)选项... 3)调试>一般 4)取消选中“为ASP.NET启用JavaScript调试”

当我使用F5运行应用程序时,一个实例会在现有的chrome实例中启动,我可以重用已经存在的cookie。选中该框后,它将始终打开一个新的chrome实例,并且不存在cookie。

答案 1 :(得分:0)

让我们快速了解如何将Cookie视为持久性

    //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。如果您希望您的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

答案 2 :(得分:0)

假设您在IIS下使用VS和ASPNet 4.5或核心1.0 / 2.0,请在启动时检查调试输出,您可能会看到:

“用户个人资料和HKLM注册表都不可用。使用临时密钥存储库。当应用程序退出时,受保护的数据将不可用。“

这是由IIS使用的DataProtection密钥引起的。请按此short blog post解决问题