如何在mvc应用程序中以编程方式将SlidingExpiration设置为true

时间:2012-07-31 17:09:56

标签: asp.net-mvc cookies forms-authentication

我有一个带有身份验证表格的MVC 3应用程序。当用户选中“记住我”复选框时,auth cookie必须设置为2周,而当他没有时,它应该是30分钟。在这两种情况下都应该打开滑动过期。根据{{​​3}}我创建了以下方法,它创建了自定义身份验证cookie:

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
            1,  //version
            username,
            DateTime.Now, //issue date
            rememberMe ? DateTime.Now.AddDays(14) : DateTime.Now.AddMinutes(30), // exprie date
            rememberMe, // is persistent
            null
            );
        var ecnryptedTicket = FormsAuthentication.Encrypt(ticket);
        HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, ecnryptedTicket);

        cookie.Expires = ticket.Expiration; // to expire cookie together with ticket

        response.Cookies.Add(cookie);

如何在此之后以编程方式设置滑动过期?

1 个答案:

答案 0 :(得分:0)

自从被问到这一段时间以来已经有一段时间了,但是在调查其他内容时我遇到了这个问题。如果你想像这样运行混合模式,你可能想要用这样的东西来推动自己:

http://cbertolasio.wordpress.com/2010/11/28/dealing-with-idle-clients-and-expiring-sessions-in-asp-net-mvc/

当从插件发送心跳时,如果需要,可以延长票证。我觉得滑动过期是一种全有或全无的选择。