Expiration参数指定的实效时间是否指验证通过后开始计算,比如下面的代码,身份验证通过后40分钟后实效,而不管用户是否一直在使用系统。这样,即使用户一直使用系统,登录后40分钟仍然需要重新登录。我的理解是否正确,请指教。谢谢!
FormsAuthenticationTicket authTicket = new  FormsAuthenticationTicket(
             1, // version(版本?)
             tbName.Text, // user name(可能是生成票据验证cookie的名称)
             DateTime.Now, // creation(票据产生时间)
             DateTime.Now.AddMinutes(40),// Expiration(票据cookie失效时间)
             false, // Persistent(这个应该是票据的保留时间)
            aRole ); // User data(角色)
//修改票据cookie,使其加密(本质是写入一个与票据cookie同名的新cookie)
 string encryptedTicket = FormsAuthentication.Encrypt(authTicket); 
 HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName,encryptedTicket);
//在保存这个Cookie之前,需要设定它的有效时间
//authCookie.Expires=DateTime.Now.AddDays(3);
 Response.Cookies.Add(authCookie);

解决方案 »

  1.   

    如果用户一致是用系统的话40分钟后不用重新登陆,.NET会自动更新ticket,颁发新的ticket以保证当前用户ticket能够继续使用
      

  2.   

    如果在使用的话,时间过半的时候,ASP.NET重新更新cookie
      

  3.   

    赚了 100 MB asp 和 asp .net空间50元/年!,
    同学们可以做一个简单的个人网站用来找工作 
    http: // www.hi876.com 你们也看看吧