我希望选择“记住我”选项的用户能够长时间登录我的网站(例如3个月,或者直到他们清除cookies)。目前我必须每隔20分钟左右重新登录一次。
我使用的是ASP.NET 5/ vnext / mvc 6 (beta 7)。我的网站是基于visual studio作为模板项目的代码。我知道其他问题也有类似的问题,但我不知道它在新的ASP.NET中是如何应用的。
我在Startup.ConfigureServices方法中有以下代码,但它似乎没有效果:
services.ConfigureIdentityApplicationCookie(options =>
{
options.ExpireTimeSpan = TimeSpan.FromDays(90);
options.SlidingExpiration = true;
options.AutomaticAuthentication = true;
options.LoginPath = new PathString("/Account/Login");
options.LogoutPath = new PathString("/Account/LogOff");
});
谢谢
编辑
使用fiddler,登录的响应包含以下cookie数据:
响应发送了642字节的Cookie数据: Set-Cookie:.AspNet.Microsoft.AspNet.Identity.Application=CfDJ8P8cKnxL87ZMjh0duvm7eKbBbA_vf1ECr95KgPd4MNsKBj0_SljMLWLPNzNFIr4PQTG1ZjVyQ7cfFMEehcI5JZrOlVVHfZ_SD29jN1vdhsdUMPTysvhvo6RlnDHq5YwFdnTNqw-_ia4cGWk8Iw05PJHsQ0mws_e0DzWpX088kysJuU0LcNoyPA22nyMoGrK1RP1Bax_XwixdO6jLQx164lqRqVYi6ys3VVPJP0aLOg3w4CovxcAemgMQEhAcNUdP6Q0rnBmfBn7FZR_kNEgXoiMkNNgBDwUuVyiweU3fw5rzE-mmBPo2IYBJWRoaSzNLcUV5gSTpDT2n8IMh4nPlTzGrFIUgCpHDhpmXJJ3EneC5i-eVaLGeQG1FAIBZZ-oNlolwdkXi63bXpHuRME9cnYLTm3cDpfooXKq0_Rn7ls4lN-wCF5kGvz6ALruUaPWNERvcKlccix7o3B_-rj1q5yhn1bKO2vumArRaq-QpHb2djaN84IdFBOw1CSJLpeQKeP3qrdJD8-GYl6chvbJ4FbA;expires=Mon,2016年1月4日10:40:35 GMT;=/;httponly
您可以看到在最后的到期时间是90天,这是正确的,但它仍然会注销我在20分钟左右。
发布于 2018-08-31 05:26:48
也许你有密钥存储问题?如果cookie加密密钥存储正确,请检查您的日志。如果应用程序不能持久化密钥,它们将在重启后重新生成,因此所有登录都将无效。
若要在IIS上启用user profile
,请检查应用程序池设置。如果你在windows7上运行,那么应用程序池的默认设置就会变得混乱。
发布于 2016-01-10 17:37:55
可以通过多种方式将cookies添加到Cookie集合中。以下示例显示了两种编写cookies的方法:
Response.Cookies["userName"].Value = "patrick";
Response.Cookies["userName"].Expires = DateTime.Now.AddDays(1);
HttpCookie aCookie = new HttpCookie("lastVisit");
aCookie.Value = DateTime.Now.ToString();
aCookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(aCookie);
https://stackoverflow.com/questions/32965911
复制相似问题