Q&A

  • 이중으로 로그인하지 못하게 하는 방법?
안녕하세요!
이세상 모든 프로그래머님들....
저는 이제 처음 프로그램을 하고 있는 회사원입니다.
저 제가 궁굼해하는것은 프로그램을 로그인 할 적에
아이디와 비밀번호를 입력하고 프로그램에 들어갑니다.
먼저 로그인한 사람이 프로그램을 쓰고 있는데 또 다른 사람이 같은
아이디와 비밀번호로 들어가서 쓰는것입니다.
두사람이 한 아이디와 비밀번호로 쓰지 않게 하려면 어찌 해야되는지
그리고 Field을 하나 만들어 놓은 후 들어오면 true, 빠져나가면 false로 하면...
문제점은 PC가 오작동으로 재 부팅하였을때 들어가지가 않아요....
계속 true상태로 되어있어서 그런것 같은데...
고수님들 부디 도와주세요
앗 그리고 서버와 클리아언트 관계입니다.
    
2  COMMENTS
  • Profile
    신현빈 2002.05.03 22:01
    단순하게 로그인했을 때에 DB Table에 True를 설정해놓는다면
    클라이언트의 비정상 종료때에 False를 셋팅할 수 있는 방법이 없습니다.

    만약 C/S환경에서 소켓 통신을 하고 계신다면
    서버쪽에서 로그인 리스트 관리를 하면 됩니다.
    그래서 클라이언트가 다운되거나 해서 접속이 끊어지면
    서버쪽에선 소켓 연결이 끊어지면서 리스트에서 해당 유저네임을 삭제하도록 하면 되죠..
    그리고 두 명이서 동시에 같은 아이디를 사용하지 못하게 하시기 위해선
    한 명이 로그인했을 경우에 다른 한 명이 아이디와 패스워드를 치고 들어올시엔
    기존에 접속해있는 사람의 컨넥션을 끊어주면 됩니다.
    아이디와 패스워드를 공유한다는 것에서 부터 문제가 되네요..ㅡㅡ;

    소켓을 사용하지 않고 클라이언트에서 DB를 직접 핸들링하는 경우라면
    두 명이상이 동시에 로그인하는 것을 막는 일은 증말 어렵죠 ㅡㅡ;

    즐코하시길..


  • Profile
    최석기 2002.05.03 07:50
    방법이야 여러가지 있겠지만

    사용자 테이블을 설계 하실때 Active 라는 필드를 하나 두시고요
    어느 한 사용자가 로그인 하면 그 Active 필드를 true로 업데이트 시키고요
    로그아웃하면 False 시키는 방식으로 가시면서 로그인 할때 해당 Active 필드값이 True인지 False인지 체크하는 방식을 사용하시면 어떨까요..