2012-08-16 10 views
0

현재 작업중인 프로젝트에서 다중 로그인을 방지하기로 결정했습니다. 이렇게하려면 사용자가 로그인 할 때 SQL 테이블에 레코드를 삽입합니다 로그 아웃 할 때 기록을 삭제합니다. (이 작업을 위해 session_end 메소드를 사용합니다.)다중 로그인 금지 오류 발생 및 다시 로그인 방지

다음은 문제입니다.이 전략을 사용하여 사용자가 브라우저를 닫을 때 세션 제한 시간을 10 분으로 설정했습니다. 다시 로그인하려면 최대 10 분 후에 session_end 메소드에 의해 삭제되고 사용자가 다시 로그인하지 못하게하는 SQL 테이블에 레코드가 있으므로 1 분에서 10 분 사이에 대기해야합니다.

이 문제에서 저를 돕기 위해 그곳에 몸이 있습니까? 모든 아이디어를 내 나쁜 구문에 대한

죄송합니다 유용 할 수있다, 나는 영어로 새로운입니다. 자세한 내용은

감사합니다, 알리 Foroughi을 제발 의견을 들어

+1

나는 한 가지 방법으로 그렇게 할 수 있다고 생각합니다. 사용자가 브라우저 창을 닫을 때마다 메시지를 팝업하고이 창을 닫으면 사이트에서 로그 아웃 할 것이라고 사용자에게 질문 할 수 있습니다. 이 게시물을 참조하십시오 http://forums.asp.net/p/1205886/2121753.aspx 조금 어려워 보이는 것 –

+0

그것은 매우 안정적인 솔루션처럼 들리지 않습니다. 예를 들어 정전으로 서버가 다운되면 어떻게 될까요? 세션 종료 이벤트가 실행되지 않아 사용자가 잠긴 상태가됩니다. – user1429080

답변

0

가까운 그가 만약 내가 다시 당신이 사용자가 로그인 10 분을 기다려야합니다 것을 주장하는 이유에 대해 여러 로그인을 방지하기 위해 세션 시간 제한을 사용하지 것이다 그의 브라우저는 우연히, 브라우저가 충돌하거나 주석처럼, 서버 및 연결 기록에 문제가있어 데이터베이스에 남아 있습니다. 또 다른 사람들이 1 분 또는 1 시간에 대한 지식 없이도 세션 시간 설정을 변경할 가능성이 있습니다.

나는 몇 년 전만해도 사용자 당 연결만을 요구하는 시스템에 참여하고 있습니다. 마지막 로그인을 유효한 것으로 간주하는 시스템을 설계했습니다. 또한 연결이 여전히 활성 상태인지 확인하기 위해 세션 시간 제한을 사용하지 않기로 결정했습니다. 사용자가 웹 사이트에서 작업을 수행 할 때마다 데이터베이스에서 마지막으로 작업 한 작업을 확인하고 현재 시간과 비교합니다. 차이가 최대 비 활동 값 (예 : 10 분) 미만인 경우, 시스템은 값을 현재 시간으로 갱신하고 계 속 진행하거나 시간 초과 페이지로 재 지정되도록 허용합니다. 이 솔루션을 사용하면 다중 로그인을 방지하고 많은 문제가 발생하는 것을 방지하고 사용자가 웹 사이트에 다시 연결될 때까지 기다리지 않아도됩니다.