2013-06-21 3 views
0

내 응용 프로그램에서 동일한 사용자가 두 번 이상 응용 프로그램에 로그인하는 것을 허용하지 않습니다. 그는 시스템에 로그인 할 때마다 로그인 상태의 데이터베이스에서 상태를 업데이트하고 로그 아웃 한 후에도 상태가 업데이트됩니다. 내 질문에 어떤 이유로 인해 오류가 발생하고 응용 프로그램이 충돌하면 그는 로그인 할 수 없습니다. 내 질문은 사용자가 유휴 상태 일 때 응용 프로그램을 탐지하도록 할 수있는 방법입니다. 그의 상태를 활성화하십시오. 나는 C#에서 내 응용 프로그램을 프로그래밍하고 내 데이터베이스는 MySQL 데이터베이스입니다. 내가 어떻게 할 수 있는지 제안 해주세요. 감사합니다.Idle time inactive detection

+0

두 가지 제안 : 1) 로그인 "만료"타임 스탬프를 만들 수 있습니다.이 타임 스탬프는 초기 로그인 또는 후속 작업 후 15 분으로 설정됩니다. 그들이 타임 스탬프 다음에 로그인하려고 시도한다면, 알려주십시오. 2) 크래시 후 정리할 수 있습니다 ... 앱이 정상적으로 종료되면 % appdata % (또는 어딘가)의 .settings 파일에 플래그를 설정하십시오. 응용 프로그램이 시작되어 정상적으로 종료되지 않은 것으로 확인되면 다시 로그인하십시오. – GojiraDeMonstah

답변

0

데이터베이스에 마지막 사용자 요청 시간을 저장할 수 있습니다 .15 분 이상 지난 경우 유휴 상태입니다.

0

직접적인 relogin을 허용하는 더 강력한 솔루션을 원하면 테이블에 CONNECTION_ID()의 결과를 저장할 수 있습니다. 사용자가 정상적으로 로그 아웃하면 NULL으로 다시 설정하십시오. 연결 ID가 NULL이 아닌 경우 SHOW PROCESSLIST을 사용하여 연결이 여전히 존재하는지 확인할 수 있습니다. 그렇지 않은 경우 응용 프로그램이 다운되고 로그인을 허용 할 수 있습니다. 물론 이것은 응용 프로그램에 데이터베이스에 단 하나의 영구 연결을 만드는 것에 달려 있습니다.