【问题标题】:How to make sure a user can only vote once on an ASP.NET poll如何确保用户只能在 ASP.NET 投票中投票一次
【发布时间】:2010-10-06 02:10:50
【问题描述】:

我正在尝试进行 ASP.NET (C#) 投票,该投票将询问用户一个是/否问题并将投票记录到数据库中。为了防止垃圾邮件,我希望能够确保用户只能投票一次。我考虑过记录用户的 IP 地址。如果这是答案,有人可以给我一个教程,说明如何完成。如果这不是答案,请给我您的建议。

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

【问题讨论】:

  • 这作为一个与语言无关的问题会更好。 :)
  • 我只使用 ASP.NET 和 C#。除了不适用于网站的 C++ 之外,我不知道任何其他语言。哦,还有一些非常基本的 JavaScript。

标签: c# asp.net ip-address


【解决方案1】:

如果您有注册用户列表,请向他们发送一封电子邮件,其中包含生成的包含 guid(例如)的唯一链接,将 GUID 记录在数据库中并在投票时匹配。

如果您谈论的是一般可公开访问且安全,那么 IP 地址本身是不够的(谷歌电子选举投票解决了与安全公众投票相关的许多问题)。

您是否考虑过使用其中一项免费投票服务?

Condorcet Internet Voting Service

【讨论】:

    【解决方案2】:

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

    HttpContext.Current.Request.UserHostAddress;

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

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

    【讨论】:

    • 这就是我想要的。
    • 虽然它可以为您提供一个 IP 地址,但它本身并不是一个特别好的投票指标(正如我和其他人所提到的)
    • 我用过一次这个系统,收到一个用户的投诉,因为他们办公室的流量都来自同一个IP,所以是全办公室的一票,而不是个人。
    • 因此,如果有人弄清楚如何删除该 cookie,他们可以无限次投票。干得好。
    • 不,我正在回复您在我上面的评论,您在其中介绍了“解决方法”。
    【解决方案3】:

    我同意一个 IP 地址不对应一个用户,但我认为这是维持每人一票的最安全方式。我通常使用 cookie 来跟踪谁投票。当然,这是一个简单的技巧,您可以删除 cookie,然后再次投票。如果投票只是一些随机的东西,那么我真的不在乎。如果正确的投票对您的应用程序确实很重要,那么请使用 IP 地址。

    【讨论】:

      【解决方案4】:

      IP 和用户代理的组合可以给你一个合理的解决方案。

      【讨论】:

        【解决方案5】:

        您不能将一票限制为一个 IP 地址。 IP 地址不等于单个用户。一个 IP 地址代表一个或多个用户。

        【讨论】:

          【解决方案6】:

          有一个需要电子邮件确认注册的注册,并确保电子邮件地址在您的用户中是数据库中的唯一列。然后将投票与电子邮件地址联系起来。它不会完全阻止拥有多个电子邮件地址的袜子木偶,但至少会让大多数人不值得付出努力。

          【讨论】:

            【解决方案7】:

            IP 地址也不适用于数百万在代理后面工作的人。

            Cookie 是部分解决方案,但投票机器人无法发送 Cookie。

            【讨论】:

              【解决方案8】:

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

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

              【讨论】:

              • 这不是一个实用的解决方案。它在封闭社区之外没有任何应用。注册过程只会阻碍投票,从而使这种方法适得其反。
              猜你喜欢
              • 2012-03-15
              • 2019-06-07
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多