我想写一段cookies登陆的程序
思路是这样的
用户在两个小时内登陆不给他加分,超过两个小时加分
这个cookies程序如何写啊,不考虑加分问题
盼复!!!

解决方案 »

  1.   

    登陆之后马上写一个cookie,用来保存登陆时间,下次登陆时先获得这个cookie,同当前时间比较,两个小时内登陆不加分,超过两个小时加分,然后将当前时间写入到cookie
    写cookie:
    HttpCookie MyCookie = new HttpCookie("LastVisit");
    DateTime now = DateTime.Now;MyCookie.Value = now.ToString();
    MyCookie.Expires = now.AddYears(1);Response.Cookies.Add(MyCookie);读取:
    Request.Cookies["LastVisit"].Value;
      

  2.   

    首先要考虑超时的情况,比如用户今天登录,明天再次登陆的时候都24个小时了,你还给分?应该是在cookie中保存初次登录时间,但是超过20分钟没有访问任何页面的,视为超时,清除cookie,或者作标识。
    如果用户继续访问页面,则在cookie中记录更新时间,最后判断是否登录时间超过2个小时,然后再加分。
      

  3.   

    具体cookie的使用,可以参考三楼
      

  4.   

    用Cache创建绝对过期时间和缓存回调用户登录时新建一个Cache:Cache.Insert(用户名,null,
    null,DateTime.Now.AddSeconds(120),
    Cache.NoSlidingExpiration, CacheItemPriority.High, 
    new CacheItemRemovedCallback(ItemRemoved) );*注意回调函数名为ItemRemoved;详细Cache的Insert方法参数请查阅msdn。然后编写回调函数:
    private void ItemRemoved(string  strItemKey, object objItemValue, CacheItemRemovedReason objRemovedReason )
    {
     objRemovedReason是Cache被删除的原因,
     运用条件判断,
     如果是objRemovedReason.Expired为true则
     执行如下代码:
     {
      用名加分;
      重新插入Cache,两小时后再加分;
     }
    }用户登出时记得要删除Cache:Cache.Remove("用户名");