投票系统如何防止一个用户多次投票
最简单的方法就是在用户投票以后记录下一定信息,每次投票时就检测这个特定信息是否存在。实现的方法我想到了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记录下来,写入数据库,在投票前先查看数据库是否有投票记录,这个方法就复杂多了,但是可以避免前几种用户关掉页面又进入可以投票的问题。
若大家还有什么更好的方案请回帖。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步