2012-02-13 2 views
1

한 사용자가 내 사이트에 로그인하면이 사용자는 [sessionid like : xxxx-xxxx-xxxx-xx] 세션을 가지며 다른 사용자가 다른 곳에서 다시 로그인하면 [sessionid like : yyyy-yyyy-yyy]와 같은 세션 [sessionid like : yyyy-yyyy-yy-yyy]로 다시 로그인 한 후 이전 세션 [sessionid : xxxx-xxxx-xxxx-xx]을 삭제할 수 있습니까?asp.net sessionid로 세션을 파괴

다른 세션에서 한 세션을 삭제하십시오! 가능합니까? 감사합니다.

+0

"그는 다른 곳에서 다시 로그인 하시겠습니까?" 당신이 요구하는 것은 필요하지 않아야합니다. 네가 잘못하고있는 것처럼 들린다. –

답변

0

걱정할 필요가 없다면 앱 디자인이 나쁘다는 것을 의미합니다.

Global.asax의 로그 작성기를 Session_End 이벤트에 넣으면 로그 파일을 읽음으로써 사용되지 않은 세션이 닫힐 때를 추적 할 수 있습니다.

+0

그것은 내가 원하는 것이 아닙니다. 이 사용자가 다시 로그인하면 다른 세션 ID를 가지고 있기 때문에 이전 세션이 여전히 존재 함을 알 수 있으며 sth도 수행 할 수 있습니다. 보안을 위해 이전 세션을 파괴하고 싶습니다. 어쨌든 고맙습니다. – cloud

+0

다른 브라우저 (IE, FF, CHROME ...)를 사용해보세요. 동일한 사이트에 로그인하십시오. – cloud

+0

이 항목을 확인하십시오 : http://stackoverflow.com/questions/2645102/opening-a-new-browser-window-with-a-new-session-id-in-asp-net –

2

이 요청과 관련하여 많은 혼란이있는 것으로 보입니다. 이 개인은 동시 사용자 세션을 방지하는 방법을 알고 싶어합니다.

제안 된 방법 : 사용자가 성공적으로 로그인하면이 새 사용자 세션을 활성화하고 사용자의 기존 활성 세션을 모두 취소하십시오.

내 솔루션 : 로그인시

  1. , 사이트 마스터 파일에서 사용자의 계정
  2. 를 기준으로 (또는 파일이 사이트의 모든 페이지를 공유 할 수 있습니다, 데이터베이스에 세션 ID를 저장), 현재 SessionID (HttpContext.Current.Session.SessionID)를 Saved SessionID와 비교하십시오.
  3. 두 개가 일치하지 않으면 세션을 포기하십시오 (Session.Abandon).

간단한 해결책이지만 문제를 해결해야합니다.

관련 문제