投票系统如何防止一个用户多次投票

最简单的方法就是在用户投票以后记录下一定信息,每次投票时就检测这个特定信息是否存在。实现的方法我想到了3种,具体如下:
1,用Page.Session;
  private void saveInSession()
  {
   if(Page.Session["ok"]==null)
   {
    Vote();
    Page.Session["ok"]=1;
   }
   else
   {
    NoVote();
   }
  }
2,用Request.Cookies;
  private void saveInCookie()
  {
   if(Request.Cookies["ok"]==null)
   {
        Vote();
        HttpCookie cookie = new HttpCookie("ok");
        cookie.Values.Add("visit","1");
        cookie.Expires = DateTime.Now.AddYears(1);
        Response.AppendCookie(cookie);

   }
   else
   {
    NoVote();
    }
  }
3,用Page.Cache;
private void saveInCache()
  {
   if(Page.Cache["ok"]==null)
   {
    Vote();
    Page.Cache["ok"]=1;
   }
   else
   {
    NoVote();
   }
  }
要做复杂点也可以把用户的ip记录下来,写入数据库,在投票前先查看数据库是否有投票记录,这个方法就复杂多了,但是可以避免前几种用户关掉页面又进入可以投票的问题。
若大家还有什么更好的方案请回帖。

posted @ 2004-11-18 23:26  深蓝  阅读(...)  评论(...编辑  收藏

我要啦免费统计