是一个登陆id用一个Cache 还是 用一个hashtable存放登陆id数据放在一个Cache中呢? Cache的过期时间设置为Session的过期时间。如果使用一个Cache【第2种的】 ,那如何保持其中的hashtable 的状态呢?

解决方案 »

  1.   

    用第二种较好。如果你的cache还有其他用途的话,里面的key太乱显得杂乱无章。
    Cache的过期时间设置为Session的过期时间。
    ===============>cacle不能过期,因为他是所有用户的信息都保存在这里跟某个session时间长短没有关系。
    hasttable的状态一直会保存。
      

  2.   

    如果不过期的话, hashtable 里面存放的数据状态怎么更新呢?
    假如用户不是正常退出 , 数据不是一直存放在了hashtable 中了吗
      

  3.   

    不是cache过期,而是cache的某条数据过期。
    建议不用hastable,用DataTable加个登录时间字段。通过这个字段检查是否过期。
      

  4.   

    是否可以Application_Beginrequest()  中 , 来维护 hashtable的数据 ,不包含当前Session的对应值的 自动添加到hashtable 中,再放进Cache中。 
    所以Cache的过期可以用来维护hashtable状态
      

  5.   

    加个登陆时间 ,我觉得还是不能判断出是否真的已经不在线了吧? 只是已经登陆多久了
    ===========
    session也不管用。计算机意外关闭等。
    所以这个时间只要定期更新的,确切的讲应该是最后在线时间。