日期:2014-05-18  浏览次数:20430 次

利用Cookie对象防止同一IP重复投票代码有何问题?
以下代码是用Cookie对象防止重复投票的例子。可是为什么我在同一台机上打开几个浏览器(照理IP应该是相同的),为什么单击Button1后却始终不提示“一个IP地址只能投一次票,谢谢您的参与!”呢?由此问题进一步想问到,在ASP.NET WEB应用程序中,客户端是不是针对浏览器而言?同一台机上打开几个浏览器窗口相当于就有几个客客户端?此问题一直困惑,谢谢解答!
private void Button1_Click(object sender, System.EventArgs e)
{
string UserIP = Request.UserHostAddress.ToString();
int VoteID = Convert.ToInt32(RadioButtonList1.SelectedIndex.ToString())+1;
HttpCookie oldCookie=Request.Cookies["userIP"];
if(oldCookie!=null)
{
string userIP = oldCookie.Values["IPaddress"];
if (UserIP.Trim() == userIP.Trim())
{
Response.Write("<script>alert('一个IP地址只能投一次票,谢谢您的参与!');history.go(-1);</script>");
return;

}
}
else
{
Response.Write(VoteID.ToString());
Response.Write("<script>alert('投票成功,谢谢您的参与!')</script>");
}
}

------解决方案--------------------
COOKIE可以乱删除

真用投票机投票的话,你拿COOKIE防不住的

其实让他手动重复投票,又怎么样呢,速度能有多快

主要是防止投票软件

用个验证码就可以了