如何确保用户只能在ASP.NET轮询上投票一次

Kre*_*dns 6 c# asp.net ip-address

我试图做一个ASP.NET(C#)调查,询问用户是/否的问题和日志投票到数据库.为了防止垃圾邮件,我希望能够确保用户只能投票一次.我考虑过记录用户的IP地址.如果这是答案,有人可以给我一个教程,说明如何实现这一目标.如果这不是答案,请告诉我你的建议.

编辑:我不是要求用户注册,因为这不是我的网站.

Dav*_*nde 13

如果您可以对用户进行身份验证,则您只能认定每个用户都有一票.因此,您需要一种身份验证机制,以防止用户注册多个帐户.

我只能在用户在其帐户中投入资金的环境中看到这项工作,例如在线报纸的订阅者或在StackOverflow上的信誉系统.


ale*_*emb 2

登录会话是防止双重投票欺诈的唯一方法,但由于您明确要求记录 IP 地址的方法,因此您可以通过以下方式实现:

HttpContext.Current.Request.UserHostAddress;

或者

HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

应该很容易保存到数据库并检查每次轮询中是否已存在 IP。

  • 因此,如果有人知道如何删除该 cookie,他们可以无限次投票。好工作。 (4认同)
  • 我曾经实现过这个系统,收到一个用户的投诉,因为他们办公室的流量都来自同一个IP,所以这是整个办公室的一票,而不是一个人的一票。 (2认同)
  • 不,我正在回复您在我上面的评论,您在其中介绍了“解决方法”。 (2认同)