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

简介:
最简单的方法就是在用户投票以后记录下一定信息,每次投票时就检测这个特定信息是否存在。实现的方法我想到了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记录下来,写入数据库,在投票前先查看数据库是否有投票记录,这个方法就复杂多了,但是可以避免前几种用户关掉页面又进入可以投票的问题。

若大家还有什么更好的方案请回帖。


本文转自深蓝居博客园博客,原文链接:http://www.cnblogs.com/studyzy/archive/2004/11/18/65468.html,如需转载请自行联系原作者

相关文章
|
架构师
目标,激励,提醒 | 新晋leader那些事
如何为团队小伙伴设定目标,如何小小激励小伙伴,如何提醒小伙伴不足,是新晋leader可能会困惑的三件事。
301 0