2009-09-25 7 views
0

서버 클라이언트 액세스 권한이있는 데스크톱 응용 프로그램을 만들었습니다 ... 모든 사용자마다 로그인이 다릅니다. 이제 문제는 한 사용자가 로그인 할 때 동일한 사용자가 다른 PC에서 로그인 할 수 없다는 것입니다 ... msg는 '사용자가 이미 로그인되었습니다'라는 메시지가 나타납니다. ASP.Net에서 그것은 세션을 통해 얻을 수 있습니다 ..하지만, 어떻게 데스크톱 응용 프로그램에서 이것을 할 수 있습니다. 하나의 솔루션이 있습니다. 우리는 로그인 된 사용자에 대해 하나의 로그 테이블을 유지 관리 할 수 ​​있습니다. 하지만, 그것도 교착 상태 상황에 직면하게 될 것입니다 .... 단일 사용자 로그인에 대한 다른 해결책이 있습니까 ??단일 사용자 단일 로그인

+0

작은 댓글을 추가하고 싶습니다. '사용자는 이미 사용 중입니다'는 시도를 멈추게하는 좋은 대답이 아닙니다. 사용자가 이미 로그인 한 상태입니다. 그냥 내 2 센트 ... – bastianneu

+0

물론 올바른 자격 증명을 입력하지 않는 한 "이미 로그인되었습니다"라는 메시지를 표시하면 안됩니다 (사용자 이름과 비밀번호는 사용자 이름이 아님). 그러면 평상시에는 더 이상 정보 유출이 없습니다. –

+0

좋아 .. 그건 문제가 아니야 ..하지만, 사용자가 이미 다른 PC에 로그인 한 상태라면 더 이상 로그인 할 수 없어야한다. – Nila

답변

1

데드락을 피하기 위해 로그인 시간 초과를 설정하고 서버에 "라이브"신호를 보내 사용자 상태를 업데이트 할 수 있습니다 로그인했습니다.

+0

좋은 아이디어 .. 감사합니다! 나는 이것을 시도 할 것이다. – Nila

1

그런 다음 로그인하기 전에 사용자가 로그인했는지 여부를 확인해야합니다. 사용자 테이블이나 특수 테이블의 특수 필드를 사용할 수 있습니다. 무슨 교착 상태? 특정 사용자가 로그인하지 않았는지 확인하기위한 읽기 액세스 만 필요합니다.

+0

그가 교착 상태로 의심하는 것은 사용자가 로그인하지 않는 상황 (응용 프로그램 충돌, 네트워크 문제 등). 처리되지 않으면 사용자가 다시 로그인하는 데 문제가 있습니다. –

+0

"활동 제한 시간"으로 완화 될 수 있습니다. 즉, 사용자가 x 분/초/시간 (응용 프로그램과 사용 빈도에 따라 다름)에 응용 프로그램에 액세스하지 않으면 자동으로 실행됩니다. 그것은 약간의 진흙이지만, 어떤 상황에서는 효과가 있습니다. – Streklin

+0

그가 응용 프로그램에 액세스하지 않았다는 것을 어떻게 알 수 있습니까? – Nila

관련 문제