我在本地环境中点击登录屏幕后设置了一个身份验证cookie。该cookie已设置为持久性,并且将来会被授予7天的超时期限。
当我结束调试会话并在另一次构建之后开始调试时,cookie不存在。这适用于每个浏览器。有没有办法让Visual Studio在调试会话完成后记住持久性cookie?
答案 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解决问题