Session["usercode"] = modelUser.Code;
            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
             1, 
             userName, 
             DateTime.Now, 
             DateTime.Now.AddHours(1), 
             false, 
            modelUser.Code
            );
            string encryptedTicket = FormsAuthentication.Encrypt(ticket);
            HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
            Response.Cookies.Add(cookie);
            FormsAuthentication.RedirectFromLoginPage(userName, false);上面的代码是验证成功。创建了一个票据,设置其过期时间为一个小时后,(第一问)这一个小时是固定的现在的时间加一个小时,还是有重新登陆就重新计算这一个小时呢?(第二问)这个过期和cookie里的expire有什么区别,二者有什么联系。
我用session存储其数值,是为了方便各个页面调用,但是经常出现session丢失,而其身份还是通过验证的情况。
(第三问)有什么解决办法么,或者说存储在cookie,也从cookie取,如何取。或者session如何同步,防丢失。致谢

解决方案 »

  1.   

    //这个过期和cookie里的expire有什么区别,二者有什么联系
    就是cookie里的expire
      

  2.   

    没必要用session
    可以在FormsAuthenticationTicket.UserData
    中保存其他信息
      

  3.   

    to:viena(维也纳nn) 
    非常感谢你的回复。对于第一个问题:我是这样的,一个登陆界面,传递给后台程序一个用户名,一个密码,验证成功设置cookie(expire属性在此时设置)后就转向别的操作页面,不会返回登陆界面的后台代码了,重新设置expire属性的代码怎么运行呢。还是说服务器会自动更新其过期时间。
      

  4.   

    每次登录运行验证代码,都会以当前时间加一个小时重新写Cookie
      

  5.   

    重新登陆就重新计算这一个小时。expire用于设置过期时间
      

  6.   

    我想请问下在页面之间传值除了session ,cookie 有别的更好的办法么?
    就拿登陆后的用户名来说,我在别的页面用到,但不想它过时,我该如何去设置好?难道只有再从数据库提取一遍吗?谢谢!
      

  7.   

    可以放在session和cookie中呀。
    结贴。