2013-09-28 63 views
0

我正在建设一个网站。我希望用户无需登录即可投票。但是每个用户应该只允许每个问题投一票(类似于堆栈溢出投票系统)。我在城市字典(http://www.urbandictionary.com/)中看到类似的东西,您可以在其中投票而无需登录。如何在ASP.NET MVC4中做到这一点?如何查找用户已投票。

我不想使用cookies,因为有人可以轻松清除cookie并重新投票。你如何看待http://www.urbandictionary.com/这样做?

+0

尝试使用组合检查。你可以使用IP或cookies,或其他任何想到的东西(IE浏览器+操作系统)。 – Rogue

+1

如果没有某种认证,您的用户(至少技术专家)可以随时投票。如果您使用IP地址作为身份验证的形式,那么使用dynamyc分配地址的用户可以轻松地关闭路由器。如果你没有参加15次代表大会,Stackoverflow不允许使用upvotes(你肯定会发现) – Steve

+0

你认为Urban字典是怎么做到的?我试图通过清除我的cookie现金和登录使用不同的IP,但它仍然阻止我投票? –

回答

-1

我没有尝试,但我建议你可以尝试使用Session这个纸。

例如:

当用户点击Voûte餐厅,设置:

Session["isVouted"] = true 

现在你可以检查:if((bool)Session["isVouted"]){don't allow to voute}。为了获得更好的结果,您可以将会话时间设置为一小时或一天。

+0

这是错误的。由于会话很容易被清除,不会阻止某人编写可能发布假票的机器人。 –

+0

@SriwanthaSriAravinda如果用户知道它是如何创建的,则不会阻止他编写bot。 –

0

我不认为这将是可能的,除非你有某种持久性存储。即一个数据库或饼干。 饼干唯一的缺点是它们可以被清除。

相关问题