一个倒票的程序需要大家帮忙了,程序是匿名投票的,我想限制一IP(都是固定IP机房内的)在5分钟之内只能访问5次toupiao.aspx,如何实现呢?
解决方案 »
- 怎么计算论坛里那种楼层数?请教各位大师们!
- .net页面中,能否实现无需打开服务器端Excel而直接将其打印?
- asp
- ASP.NET 3.5中: ajax autocomplete 实现多字段显示,但是选中的话,文本框是显示被选中的该条记录中的一个指定主要字段 可以实现不?
- 菜鸟在登陆页面遇到的拦路虎Please help me!
- asp.net 无法显示datagrid(在线等,谢谢)
- aspnet_client文件夹是干什么用的?
- 安装问题
- SOS!如何解决:程序集清单定义与程序集引用不匹配
- 怎样控制asp.net中TreeView的样式呢?
- ASP.NET Ajax问题??
- XCMS V1.0 Beta1 发布 (散分)
2)使用Cache来保存信息。
3)使用Application来保存信息。这跟算点击量实际是大同小异。在提交时交验访问信息就可。
//判断指定的IP是否已投过票了,如果已经投过了,则弹出提示对话框
string UserIP = Request.UserHostAddress.ToString();
int VoteID = Convert.ToInt32(RadioButtonList1.SelectedIndex.ToString())+1;
HttpCookie oldCookie=Request.Cookies["userIP"];
if (oldCookie == null)
{
//象数据库里面插入所选的答案
UpdateVote(VoteID);
Response.Write("<script>alert('投票成功,谢谢您的参与!')</script>");
//定义新的Cookie对象
HttpCookie newCookie = new HttpCookie("userIP");
//newCookie.Expires = DateTime.MaxValue;
newCookie.Expires = DateTime.Now.AddMinutes(1);
//添加新的Cookie变量IPaddress,值为UserIP
newCookie.Values.Add("IPaddress", UserIP);
//将变量写入Cookie文件中
Response.AppendCookie(newCookie);
return;
}
else
{
string userIP = oldCookie.Values["IPaddress"];
if (UserIP.Trim() == userIP.Trim())
{
Response.Write("<script>alert('一个IP地址一个月内只能投一次票,谢谢您的参与!');history.go(-1);</script>");
return;
}
else
{
HttpCookie newCookie = new HttpCookie("userIP");
newCookie.Values.Add("IPaddress", UserIP);
//newCookie.Expires = DateTime.MaxValue;
newCookie.Expires = DateTime.Now.AddMinutes(1);
Response.AppendCookie(newCookie);
UpdateVote(VoteID);
Response.Write("<script>alert('投票成功,谢谢您的参与!')</script>");
return;
}
}
在保存投票时,判断该ip从该时刻起的5分钟内投票次数,超过5次,返回错误,否则保存投票