2010-08-19 7 views
2

안녕하세요 저는 누군가가 웹 사이트에 액세스 할 때마다 +1을 추가하는 기본 카운터를 만들고 있습니다. 문제는 사람이 처음으로 사이트를 방문 할 때가 아니라 데이터를 매우 부정확하게 만드는 경우가 아니라 사이트의 다른 페이지로 이동할 때마다 1을 더하는 것입니다 (예 : 사이트에 액세스하는 한 명의 사용자가 8 개의 다른 페이지로 이동할 수 있으며, 그러므로 카운터 1에 8을 더한다. 사용자가 첫 번째 초기로드시 사이트에 액세스하는 것을 감지하는 방법이 있습니까?누군가가 asp.net 웹 사이트에 처음 방문하는지 확인하십시오.

C#에서 asp.net 3.5를 사용하고 있습니다.

+0

설명해 주시겠습니까? 새로운 사용자가 귀하의 웹 사이트를 방문 할 때마다 카운트하고 싶습니까? 현재 세션이 시간 초과 된 다음날 다시 올 경우 어떻게됩니까? 두 번째로 계산합니까? –

+0

예이 경우 새로운 세션에서 같은 사람이라도 사이트를 방문한 횟수를 확인하는 것입니다 .Session_Start 이벤트는 꽤 유리합니다. – loyalpenguin

+0

Session_Start는 누군가가 인증되지 않은 사용자 수를 계산할 수 있습니까? – loyalpenguin

답변

3

시도는 처음 그들은 당신의 사이트의 페이지를 누르십시오. 그런 다음 브라우저 세션 시간이 초과되면 (기본적으로 사이트에서 20 분 동안 사용하지 않음) 다음에 사이트에 방문 할 때마다 다른 증가가 발생합니다. 제한 시간은 구성 가능합니다.

처음으로 사이트를 방문한 적이 있다면, 다른 포스터에서 언급 한 쿠키 접근 방식을 사용하면됩니다. 그러나 인터넷 카페라고 생각하면 같은 사용자인지, 똑같은 컴퓨터인지를 알 길이 없습니다.

편집 : 익명 사용자에 대한 의견 : 당신의 authorizatioin 설정은 무엇입니까? 예 :

<!-- Allow access to anonymous (unauthenticated) users. --> 
<authorization> 
    //probably shouldn't do this in particular, but you might want to look at your settings 
    <allow users="*" /> 
</authorization> 
+0

세션이 비활성화 된 경우이 기능은 작동하지 않습니다. –

+1

참. 세션을 비활성화하지 마십시오. 기본적으로 사용하도록 설정되어 있으므로 사용하지 않도록 설정해야합니다. –

+1

@Chuck, 세션은 서버 측 개념입니다. '세션이 비활성화 된 경우'는 무엇을 의미합니까? – rochal

2

쿠키를 설정하십시오. 쿠키가 있는지 확인한 다음 카운트를 증가시키지 마십시오.

사용자가 로그인해야하는 경우 로그인 한 횟수를 세어 볼 수 있습니다. 각 사용자에 대한 카운터를 추가합니다 Global.asax.cs

protected void Session_Start(object sender, EventArgs e) 
    { 
      //Increment your counter here 

    } 

이을으로 session_start 이벤트를 사용

+3

쿠키가 꺼져도 작동하지 않습니다. –

+0

두 번째 사용자가 인터넷 카페에서 같은 컴퓨터로 사이트를 방문하면 쿠키가 계속 남아 있기 때문에 계산되지 않습니다. –

+0

@James - 사실이지만 누가 쿠키를 끄겠습니까? 대부분의 현대 사이트는 쿠키에 의존합니다. –

0

모든 방문자의 IP 주소를 저장하지만 고유 IP 주소 만 저장합니다.

+1

정확하지 않습니다. 라우터는 IP 주소 뒤에 n 명을 숨길 수 있습니다. –

+0

이름이 고유하지 않기 때문에 사람들이 이름으로 로그인하게하거나 여권 번호를 더 잘 나타내지 않는 한, 여기에 100 % 정확한 것은 없습니다. 여전히 일반적인 솔루션입니다. –

1

방화벽 뒤에있는 모든 사람이 동일한 IP 주소로 표시되기 때문에 IP 주소만으로 로그하지 않으려합니다.

쿠키가 여기에있는 방법이라고 생각합니다. 사용자가 처음 사이트로 이동하면 쿠키를 설정하십시오. 그 이후의 요청에 대해서는 쿠키가없는 경우 카운터를 증가시킵니다. Session_Start를 사용하면 비슷한 동작이 발생하지만 세션 쿠키 만료로 인해 동일한 사람을 여러 번 추적 할 수 있습니다.

카운터의 목적을 확장 할 수 있다면 적절한 해결책을 결정하는 데 도움이됩니다.

+0

두 번째 사용자가 동일한 컴퓨터의 사이트 (예 : 인터넷 카페)에있는 경우 쿠키가 계속 남아 있기 때문에 계산되지 않습니다. 문제는 카운터를 "+1 할 때마다 누군가가 웹 사이트에 액세스"(내 대문자)를 원합니다. 이 경우, 세션은 정확히 무엇이 필요한지 –

+0

@ 대니얼 - 그들이 세션 쿠키를 사용하는 경우는 아닙니다. –

+0

@Chuck이 기능을 사용하려면 세션을 사용하지 않아야하며,이 경우 쿠키가 필요하지 않습니다. Session_Start 이벤트에서 모두 수행 할 수 있습니다. 이 사이트는 사용자가 사이트를 탐색하지 않는다고 알려주는 쿠키가 필요하지 않습니다. Session_Start 이벤트는 쿠키 액세스 코드 한 줄을 쓰지 않고도 알 수 있습니다. –

0

Google Analytics을 사용하십시오. 매우 포괄적 인 사용자 추적 (무료)

관련 문제