代码之家  ›  专栏  ›  技术社区  ›  Khash

OpenID ASP MVC验证(长时间失效)

  •  2
  • Khash  · 技术社区  · 15 年前

    StackOverflow和其他许多网站一样使用OpenID。但是,我很少需要提供我的OpenID到StackOverflow,而对于其他启用OpenID的网站,我必须每天或每周提供一次。

    这对我来说意味着会话的到期是与网站有关的,而不是与OpenID提供者有关的。

    通过查看ASP MVC中的dotNetOpenID代码,我可以看到,在OpenID提供程序FormsAuthentication.setAuthcookie成功进行身份验证后,将使用标识符和布尔参数来调用,以确定是否应持久化cookie。

    我如何才能强制这个cookie过期,比如说在2020年,而不是默认值。

    2 回复  |  直到 15 年前
        1
  •  4
  •   eu-ge-ne    15 年前

    MSDN - Explained: Forms Authentication in ASP.NET 2.0 :

    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
        "userName",
        DateTime.Now,
        new DateTime(2020, 01, 01), // value of time out property
        false, // Value of IsPersistent property
        String.Empty,
        FormsAuthentication.FormsCookiePath);
    
    string encryptedTicket = FormsAuthentication.Encrypt(ticket);
    
    HttpCookie authCookie = new HttpCookie(
                            FormsAuthentication.FormsCookieName, 
                            encryptedTicket);
    
    authCookie.Secure = true;
    
    Response.Cookies.Add(authCookie);
    
        2
  •  1
  •   Franci Penov    15 年前

    你可以使用 FormsAuthentication.RenewTicketIfOld() 更新票据。此方法将检查当前票据是否已过期,如果没有,则延长其过期时间。您可以在每次请求您的站点时调用此方法,当用户继续使用您的站点时,此方法将在将来“滑动”到到期日。