我正在尋找一個想法來開發一個小投票系統,選民可以匿名投票。沒有登記,沒有電子郵件......當然,每個人都必須只投一次。如何匿名輪詢?
我不想使用cookies,因爲我認爲可能有少數用戶從一臺機器投票,或者一個用戶在一臺機器上投票多個瀏覽器。另外我認爲使用IP地址也不是一個好主意,因爲用戶可能使用代理。那麼,你有什麼想法嗎?
(我使用ASP.NET 4與C#&的SQL Server 2008)
感謝。
我正在尋找一個想法來開發一個小投票系統,選民可以匿名投票。沒有登記,沒有電子郵件......當然,每個人都必須只投一次。如何匿名輪詢?
我不想使用cookies,因爲我認爲可能有少數用戶從一臺機器投票,或者一個用戶在一臺機器上投票多個瀏覽器。另外我認爲使用IP地址也不是一個好主意,因爲用戶可能使用代理。那麼,你有什麼想法嗎?
(我使用ASP.NET 4與C#&的SQL Server 2008)
感謝。
是絕對沒有辦法保證每個人只能投票一次,無需註冊。即使您獲得知識產權,您也無法阻止該人員第二次從另一個地點投票,並且會阻止多人使用相同的連接進行投票。
沒有註冊,你最好的選擇是使用IP地址來識別投票。將民意調查存儲在數據庫中,如果選民嘗試投票多次,則拒絕更新。
一種方式來獲得IP地址:
public static string getIPAddress(HttpRequestBase request)
{
string szRemoteAddr = request.UserHostAddress;
string szXForwardedFor = request.ServerVariables["X_FORWARDED_FOR"];
string szIP = "";
if (szXForwardedFor == null)
{
szIP = szRemoteAddr;
}
else
{
szIP = szXForwardedFor;
if (szIP.IndexOf(",") > 0)
{
string [] arIPs = szIP.Split(',');
foreach (string item in arIPs)
{
if (!isPrivateIP(item))
{
return item;
}
}
}
}
return szIP;
}
在網上搜索「唯一標識網站訪問者」。 – CodeCaster
IP或cookie。既不保證任何東西,但這是你唯一的選擇沒有註冊。大多數匿名民意調查過去都是基於「持久性」cookies。或使用壽命長達5 - 20年的餅乾。 – quetzalcoatl