【发布时间】:2012-01-12 04:27:02
【问题描述】:
我有一个喜欢/不喜欢按钮,我将它们放在更新面板中,以便能够在不刷新页面的情况下更新计数器,用户可以多次单击喜欢/不喜欢按钮并且计数器会发生变化的问题
一旦我认为我可以使用 cookie 但我之前没有使用过它,我想允许用户单击按钮,所以如果有人可以帮助我这样做,我将不胜感激
如果还有其他更好的解决方案,请告诉我
提前致谢
【问题讨论】:
标签: asp.net ajax cookies button
我有一个喜欢/不喜欢按钮,我将它们放在更新面板中,以便能够在不刷新页面的情况下更新计数器,用户可以多次单击喜欢/不喜欢按钮并且计数器会发生变化的问题
一旦我认为我可以使用 cookie 但我之前没有使用过它,我想允许用户单击按钮,所以如果有人可以帮助我这样做,我将不胜感激
如果还有其他更好的解决方案,请告诉我
提前致谢
【问题讨论】:
标签: asp.net ajax cookies button
如果您想使用cookies,可以查看this page(旧版本)或this page(较新版本)。
您尚未描述您正在创建的网站类型,但如果您有用户注册/登录机制,您可以只保存特定用户的信息单击数据库中的 like 按钮。
如果无法登录,您可以按照 Adam 的建议尝试通过 IP 地址来识别您的用户。您可以通过以下方式做到这一点:
String remoteAddress = HttpContext.Current.Request.UserHostAddress;
或
String remoteAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
无论哪种方式,我认为最好将 cookie 与另一种方法结合使用,因为您可以先检查 cookie。如果它存在于用户的计算机上,您就知道她/他已经投票了。如果 cookie 不存在,您可以查询数据库以获取有关用户的保存信息(通过 IP 或登录机制识别)。这样您就可以减少对数据库的查询,这应该有利于您的应用程序的性能:)。
【讨论】:
您可以通过 IP 地址进行跟踪,而不是使用 cookie。
我知道 IP 地址会随着时间而改变,因此您可以将其与 cookie 一起使用,但也可以清除 cookie,因此任何内容都不会 100%。
当用户点击喜欢或不喜欢时,将他们的 IP 地址与点赞记录一起存储。
如果他们已经这样做了,请放置代码以停止另一个喜欢或不喜欢计数。
然后在您的更新中删除喜欢或不喜欢按钮并只显示计数。
这是我用于我的应用程序的内容。我还有一个 Facebook 应用程序,我在其中使用他们的 Facebook 用户 ID,这更难伪造。
无论哪种方式,我认为 IP 地址是检测和阻止某人重复操作的最佳方法。
【讨论】: