2014-02-22 2 views
0

나는 유권자들이 익명으로 투표 할 수있는 약간의 투표 시스템을 개발하려는 아이디어를 찾고 있습니다. 아무 등록도, 전자 우편 없음 ..., 당연히, 모두는 단 1 시간 투표해야한다.익명으로 투표하는 방법?

일부 사용자가 한 대의 컴퓨터에서 투표하거나 한 명의 사용자가 한 대의 컴퓨터에서 여러 대의 브라우저로 투표 할 가능성이 있기 때문에 쿠키를 사용하고 싶지 않습니다. 또한 IP 주소 작업은 사용자가 프록시를 사용할 수 있기 때문에 좋은 생각이 아닙니다. 그럼 이거 좀 생각해?

감사합니다 (I는 C# & SQL Server 2008에 ASP.NET 4를 사용).

+0

웹에서 "고유하게 웹 사이트 방문자를 식별하십시오"를 검색하십시오. – CodeCaster

+0

IP 또는 쿠키. 어느 것도 보증하지는 않지만 등록하지 않은 유일한 옵션입니다. 대부분의 anon-polls는 '영구적 인'쿠키를 기반으로 사용되었습니다. 또는 5 ~ 20 년 같은 긴 수명을 가진 쿠키. – quetzalcoatl

답변

4

등록하지 않고, 각 사람이 한 번만 투표 할 것이라는 점을 보장하는 절대적 방법은 없습니다. IP를받은 경우에도 다른 사람이이 사람을 다른 위치에서 두 번 투표하는 것을 막지 못할 것이며 동일한 연결을 사용하여 여러 사람이 투표하지 못하게 할 것입니다.

0

등록하지 않고 가장 좋은 방법은 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; 
} 
관련 문제