c# - 保持用户长时间登录到 ASP.NET 5 网站

标签 c# asp.net asp.net-mvc asp.net-core

我希望选择“记住我”选项的用户在我的网站上保持登录状态很长时间(例如 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 ,它们将在重启后重新生成,因此所有登录都将失效。

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

要在 IIS 上启用用户配置文件,请检查应用程序池设置。如果您在 Windows 7 上托管,则应用程序池的默认设置很乱。

关于c# - 保持用户长时间登录到 ASP.NET 5 网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32965911/

相关文章:

c# - 如何让AutoFixture从多个TypeRelay中随机选择?

c# - Microsoft bot 服务在本地运行良好,但在网络聊天 channel 中运行不佳

c# - yield return 仅适用于 IEnumerable<T>?

c# - ASP.NET 发布错误(指定的路径、文件名或两者都太长)

表单例份验证应用程序中的 ASP.NET Web 服务

c# - 拦截 ASP.NET MVC 路由

c# - 如何在 app.xaml [C#] 中全局设置文本框的属性

ASP.NET 成员(member) : CSS being blocked by Deny users, 页面无法正确呈现?

c# - BundleConfig.cs 使用 bootstrap.min.css

c# - 在 ASP.NET MVC 中安全和 "squarified"照片上传