在webconfig里<authentication mode="Forms" >
<forms loginUrl="~/login.aspx" defaultUrl="~/default.aspx" timeout="30"
这里设置了timeout  FormsAuthenticationTicket Ticket = new FormsAuthenticationTicket(1, userId, DateTime.Now, DateTime.Now.AddMinutes(30), false, roles,"/"); //建立身份验证票对象 
        string HashTicket = FormsAuthentication.Encrypt(Ticket); //加密序列化验证票为字符串 
        HttpCookie UserCookie = new HttpCookie(FormsAuthentication.FormsCookieName, HashTicket); Response.Cookies.Add(UserCookie);写入cookie这里也设置了时间 DateTime.Now, DateTime.Now.AddMinutes(30)问下timeout 和 DateTime.Now, DateTime.Now.AddMinutes(30)设置的是谁的过期时间?如果是cookie为什么关闭浏览器在打开又要重新登陆?
如果是
UserCookie.Expires = DateTime.Now.AddMinutes(30);
Response.Cookies.Add(UserCookie);
这样的话 才可以保存cookie30分钟 就是说浏览器关闭在打开后 不用重新登陆
这是为什么?

解决方案 »

  1.   

    Cookies在不设置时间限制的时候,浏览器关闭会默认清除的
      

  2.   

    <forms loginUrl="~/login.aspx" defaultUrl="~/default.aspx" timeout="30">里的timeout是以分钟为单位的,表单验证的有效时间即是cookie的过期时间
      

  3.   

    只是想问timeout 和 DateTime.Now, DateTime.Now.AddMinutes(30)设置的是谁的过期时间?
    这俩个不是设置了cookie的过期时间吗  为什么不好使  要UserCookie.Expires = DateTime.Now.AddMinutes(30);
    这样在设置下 才可以?
      

  4.   

    DateTime.Now, // Cookie 的发出时间。 
    DateTime.Now.AddMinutes(20),// Cookie 的到期日期。 
    false, // 如果 Cookie 是持久的,为 true;否则为 false。 
      

  5.   

    我说的不清楚吗?我是问 为什么设置了 过期时间 不好使 关闭浏览器cookie就没了 ?下次要重新登陆?