我希望选择“记住我”选项的用户在我的网站上保持登录状态很长时间(例如 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 数据:
Response sent 642 bytes of Cookie data: 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, 04 Jan 2016 10:40:35 GMT; path=/; httponly
你可以看到最后的过期时间是 90 天,这是正确的,但它仍然会在 20 分钟左右后注销我。
最佳答案
也许您有 key 存储问题?检查您的日志是否正确存储了 cookie 加密 key 。如果应用程序无法保留 key ,它们将在重启后重新生成,因此所有登录都将失效。
要在 IIS 上启用用户配置文件
,请检查应用程序池设置。如果您在 Windows 7 上托管,则应用程序池的默认设置很乱。
关于c# - 保持用户长时间登录到 ASP.NET 5 网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32965911/