让用户长时间登录ASP.NET 5网站?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (134)

我希望选择“记住我”选项的用户长时间(例如3个月,或直到他们清除cookie)登录我的网站。目前我必须每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的数据:设置Cookie:.AspNet.Microsoft.AspNet.Identity.Application = CfDJ8P8cKnxL87ZMjh0duvm7eKbBbA_vf1ECr95KgPd4MNsKBj0_SljMLWLPNzNFIr4PQTG1ZjVyQ7cfFMEehcI5JZrOlVVHfZ_SD29jN1vdhsdUMPTysvhvo6RlnDHq5YwFdnTNqw-_ia4cGWk8Iw05PJHsQ0mws_e0DzWpX088kysJuU0LcNoyPA22nyMoGrK1RP1Bax_XwixdO6jLQx164lqRqVYi6ys3VVPJP0aLOg3w4CovxcAemgMQEhAcNUdP6Q0rnBmfBn7FZR_kNEgXoiMkNNgBDwUuVyiweU3fw5rzE-mmBPo2IYBJWRoaSzNLcUV5gSTpDT2n8IMh4nPlTzGrFIUgCpHDhpmXJJ3EneC5i-eVaLGeQG1FAIBZZ-oNlolwdkXi63bXpHuRME9cnYLTm3cDpfooXKq0_Rn7ls4lN-wCF5kGvz6ALruUaPWNERvcKlccix7o3B_-rj1q5yhn1bKO2vumArRaq-QpHb2djaN84IdFBOw1CSJLpeQKeP3qrdJD8-GYl6chvbJ4FbA; expires =周一,2016年1月4日10:40:35 GMT; 路径= /; 仅Http

你可以看到最后到期时间是90天,这是正确的,但它仍然会在20分钟左右登出我。

提问于
用户回答回答于

您可以通过多种方式将Cookie添加到Cookie集合中。以下示例显示了两种写入cookie的方法:

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);
用户回答回答于

也许你有密钥存储问题?如果正确存储了cookie加密密钥,请检查您的日志。如果app无法持久保存,则重启后会重新生成,因此所有登录都将失效。

https://docs.microsoft.com/pl-pl/aspnet/core/security/data-protection/configuration/default-settings?view=aspnetcore-2.1

user profile在IIS上启用检查应用程序池设置。如果您在Windows 7上托管,则应用程序池的默认设置会出现问题。

扫码关注云+社区

领取腾讯云代金券