功能是当用户连续5分钟对页面无操作时,当用户再操作页面,就会让用户重新登录。现在用户信息是放cookie里面的,用yourCookie.Expires这个功能,好像是不论用户是否有操作,一到时都把cookie删了。请问如何实现?

解决方案 »

  1.   

    如果你用的FormAuthentication,可以在web.config中设置(the timeout value is in minutes):
    <system.web>
        <authentication mode="Forms">
              <forms timeout="50000000"/> 
        </authentication>
    </system.web>
      

  2.   

    设置COOKIE保存时间为5分钟用户每次操作前 系统都对用户进行身份验证一下如果COOKIE不存在,就提示登陆 如果COOKIE存在,则更新COOKIE 
      

  3.   

    这样的话,到了5分钟,不管用户是否正在使用系统,cookie都会被删除。这显然不是我想要的。
    我要的是用户连续5分钟无操作,才删除cookie,让用户重登录。
      

  4.   


    楼上的朋友,用 Form 验证对楼主来的需求来说未免太过于复杂了吧。
    你可以用一个 Session 存储用户上一次操作的时间,然后用 DataTime.Now 与这个时间作比较喽比如
    if (Session["OperateTime"]  != null)
    {
      TimeSpan OperateSpan = new TimeSpan();
      OperateSpan = DataTime.Now - (DateTime)Session["OperateTime"];
      if (OperateSpan.Minutes > 5 )
        {
          Session["OperateTime"] = null;
          //清除登陆信息
          Response.Redirect("Login.aspx"); //重定向到登陆页
        }
    }
    else
      Session["OperateTime"] = DateTime.Now;
    P.S. 代码手动敲入,可能少许错误,如需使用,请做核查
      

  5.   

    如果用 Cookie,就也可以用 4 楼的方法:
      

  6.   


    怎么不行?
    5分钟内无连续操作 则删除COOKIE5分钟内有操作,则更新COOKIE ,从操作时间开始重新对COOKIE计时