【发布时间】:2011-12-20 21:43:03
【问题描述】:
我正在研究一个由 域模型(在其单独的项目中)和 MVC3 Web 应用程序(同样在其自己的项目中)组成的解决方案。 p>
在我的 MVC3 应用程序中,我列出了帖子(通过域上的存储库访问),每个帖子都有一个 like 按钮,当然在域中模型,Post 实体有一个属性:
public int Likes { get; set; }
我希望允许我网站的访问者(即访客)能够点击帖子上的“赞”按钮,但只能点击一次。这样他/她就能够点赞一个帖子一次。
实现这一目标的最佳方法是什么?饼干 ?将 IP 地址与喜欢的帖子 ID 一起保存在数据库中?还是其他方式?
我真的很困惑,因为无论我怎么想,逻辑中总是存在漏洞,用户可以两次赞一个帖子!
任何帮助都会很棒。
谢谢。
【问题讨论】:
-
这就是在互联网上匿名的全部意义所在。用户可以从不同的 IP 访问您的应用程序,他们绝对可以清除他们的 cookie。如果你真的想确定没有人喜欢某样东西两次,他们就需要进行身份验证。
-
非常感谢大卫。在这两者中,Cookie 与 IP 节省..如果您处于我的情况,您会做哪一个?
-
只选择一个,我会在服务器端加密一个值(如 GUID 或其他东西),并将其存储在 cookie 中。这样,我可以跟踪不定期清除 cookie 的用户并且客户端无法修改该值。他们只能删除它。
-
谢谢大卫。该加密值 (GUID) 代表什么?
标签: asp.net-mvc-3 ef-code-first