2014-11-01 2 views
0

나는 U 모든 자신 로 쓰기 온라인 채팅 쓰기 여부를 확인하는 방법 그래서 내가 로그인 및 설정 AuthCookie을 쓰고 난는 사용자가 여전히 온라인 ASP MVC

지금 내가 어떤 사용자가 온라인으로 모든 N-시간을 확인해야 할 인증했다.

내가 가진 Users_Online (ID, USER_ID)라는 이름의 데이터베이스의 테이블 나는 로그인하면 (또는 내가 (내가 인증 쿠키가있는 경우) 페이지를 채팅에 올 때 -. 내가

테이블 Users_online에 행을 설정하지만, 내가 어떻게을 밖으로 나갈 때 행을 제거 할 수 있습니다. (노래를 부르지 말고 그냥 탭/브라우저를 닫습니다.) Global.asax에서 Session_OnStart/Session_OnEnd를 사용하려고 시도하지만 마지막으로 (Session_OnEnd) - 올바르게 작동하지 않습니다.

내 친구들.

+0

사용자가 브라우저 창을 닫으면 감지 할 수있는 방법이 없습니다. 예를 들어, 일부 비 활동 기간 후에 연결이 끊어 졌다고 생각할 수 있습니다. –

+0

확인. 코드, 예제 또는 링크를 giva 할 수 있습니까? 빠른 대답을위한 btw 감사합니다 –

+0

정말, 거기에 너무 많은 방법이 있습니다. 예를 들어 Google for ASP.NET MVC 비활성 세션이 닫힙니다. –

답변

0

좋아. 내 문제를 해결 (희망))) 누군가가 예 :

public void Session_OnStart() 
{ 
    //here you do something 
} 
public void Session_OnEnd() 
{ 
    //your logic 
} 

그리고있는 Web.Config 당신이 쓰기 필요 :

<sessionState mode="InProc" cookieless="false" timeout="##Here you write timeout for session"></sessionState> 

행운

0

당신이 원하는 경우를 Global.asax에에서

는 2 가지 방법이 필요합니다 파일 올바른 사용을 시도하십시오 SignalR (signalr.net)

Session_OnEnd는 트리거하지 않습니다. r 누군가가 브라우저를 닫을 때 :)

+0

네,하지만 세션 시간 초과로 2-3 분이 걸리는 경우 사용자가 온라인 상태인지 확인할 수 있습니다. 그리고 예 - SignalR - 최선의 방법 -하지만 작업은 무언가를 사용하지 않습니다 - Webservices/WebAPI 만 해당 - 공부할 때의 일입니다. –

+0

2-3 분 동안 세션 시간 초과를하면 사용자는 유휴 시간 2-3 분 후에 로그인해야합니다. 이 솔루션은 과정을 통과해도 괜찮습니다. –

+0

쿠키를 2 일 동안 설정하고 사용자가 무언가를 할 때 2-3 분의 유휴 시간이 지나면 - Auth 필터가 새로운 세션을 설정합니다. –