我正在建設一個網站。我希望用戶無需登錄即可投票。但是每個用戶應該只允許每個問題投一票(類似於堆棧溢出投票系統)。我在城市字典(http://www.urbandictionary.com/)中看到類似的東西,您可以在其中投票而無需登錄。如何在ASP.NET MVC4中做到這一點?如何查找用戶已投票。
我不想使用cookies,因爲有人可以輕鬆清除cookie並重新投票。你如何看待http://www.urbandictionary.com/這樣做?
我正在建設一個網站。我希望用戶無需登錄即可投票。但是每個用戶應該只允許每個問題投一票(類似於堆棧溢出投票系統)。我在城市字典(http://www.urbandictionary.com/)中看到類似的東西,您可以在其中投票而無需登錄。如何在ASP.NET MVC4中做到這一點?如何查找用戶已投票。
我不想使用cookies,因爲有人可以輕鬆清除cookie並重新投票。你如何看待http://www.urbandictionary.com/這樣做?
我沒有嘗試,但我建議你可以嘗試使用Session
這個紙。
例如:
當用戶點擊Voûte餐廳,設置:
Session["isVouted"] = true
現在你可以檢查:if((bool)Session["isVouted"]){don't allow to voute}
。爲了獲得更好的結果,您可以將會話時間設置爲一小時或一天。
這是錯誤的。由於會話很容易被清除,不會阻止某人編寫可能發佈假票的機器人。 –
@SriwanthaSriAravinda如果用戶知道它是如何創建的,則不會阻止他編寫bot。 –
我不認爲這將是可能的,除非你有某種持久性存儲。即一個數據庫或餅乾。 餅乾唯一的缺點是它們可以被清除。
嘗試使用組合檢查。你可以使用IP或cookies,或其他任何想到的東西(IE瀏覽器+操作系統)。 – Rogue
如果沒有某種認證,您的用戶(至少技術專家)可以隨時投票。如果您使用IP地址作爲身份驗證的形式,那麼使用dynamyc分配地址的用戶可以輕鬆地關閉路由器。如果你沒有參加15次代表大會,Stackoverflow不允許使用upvotes(你肯定會發現) – Steve
你認爲Urban字典是怎麼做到的?我試圖通過清除我的cookie現金和登錄使用不同的IP,但它仍然阻止我投票? –