C# 如何记住用户的操作(例如他们的拇指或星级)?

C# 如何记住用户的操作(例如他们的拇指或星级)?,c#,jquery,asp.net-mvc,C#,Jquery,Asp.net Mvc,我只是想知道网站如何“收视率”或“竖起大拇指” 我想每个大拇指都会有一个特殊的id,对应于数据库中存储总计数的某个值 然而,我不确定的是人们是如何做到的,用户只能点击一次。就像是竖起大拇指,他们就不能继续发垃圾邮件了 我不确定他们是把它写得太像饼干还是什么。看起来大多数网站都会有这样的功能,即使你加载了不同的浏览器,你也无法访问同一篇文章并对其进行浏览。有些人会使用cookies,有些人会记住你的IP地址 前者可以通过删除Cookie来击败,而后者则不能正确使用NAT:如果NAT背后有很多人(比

我只是想知道网站如何“收视率”或“竖起大拇指”

我想每个大拇指都会有一个特殊的id,对应于数据库中存储总计数的某个值

然而,我不确定的是人们是如何做到的,用户只能点击一次。就像是竖起大拇指,他们就不能继续发垃圾邮件了


我不确定他们是把它写得太像饼干还是什么。看起来大多数网站都会有这样的功能,即使你加载了不同的浏览器,你也无法访问同一篇文章并对其进行浏览。

有些人会使用cookies,有些人会记住你的IP地址


前者可以通过删除Cookie来击败,而后者则不能正确使用NAT:如果NAT背后有很多人(比如公司大楼、校园或网吧),那么这些人中只有一人可以投票。

关于ID和数据库位,你是对的。当用户登录时,大多数站点(即使是这个站点)都会允许这种功能。当然,滥用者可以多次登录该网站,但这会增加滥用者进行滥用者行为的“成本”

有些站点在用户未登录的情况下允许这样做,但它们仍然可以获得会话。他们的会话通常会记录IP地址,在许多情况下还会记录“浏览器签名”。如果用户随后返回相同的浏览器和IP地址,则随后的投票可能会被忽略,或者将替换以前的任何投票

我希望这能为你指明正确的方向

您需要3张桌子

用户
问题
投票

拥有
投票权
一个组合的
主键(userID,questionID)
您可以保证每个用户只有一票。如果元组
(UserID,questionID)
已经存在,只需放弃查询即可

现在,如果您谈论的是未注册用户,那么它遵循相同的逻辑,只使用用户
IP
(以及一些其他可选信息,如浏览器的示意图),而不是
用户id


非注册用户Cookie添加了您需要的额外保护层,但它们不是强制性的。

使用jQuery使用Ajax在服务器上存储数据库中的值。最重要的是要考虑的是:“每个人只有一个投票”限制,您关心多少?通过清除Cookie/切换浏览器,可以绕过Cookie。IP地址检查将阻止共享IP的人,并允许更改IP的人进行多次投票。进行实际用户注册并将投票与用户ID绑定是使其接近可靠的唯一方法。但当然,对于简单的“竖起/竖起”评级,您可能不太在意。因此,基本上您将所有内容都存储在表中,每次页面加载时,您都会通过用户ID或IP检查是否要禁用投票?