Q&A

  • 현업에선 사용자인증(Login)처리는 보통 어떻게 처리를 합니까??
현업에서 많이 사용하는 사용자 인증방법들을 알고 싶습니다.

게시판을 검색해보니 TDatabase의 OnLogin이벤트에서  사용자 로긴폼을
뛰워서 처리하는 방법. (정상적으로 로긴되면 다행인데 예외처리가
힘들것 같다는 생각이 듭니다)

두번째 TDatabase의 Params에 UserName과 Password를 넣고 Login prompt 를
False로해서 자동로긴시킨후에 DB의 사용자정보 테이블에서 다시한번더
인증을 거치는 방법.(사용자 권한을 줄때 문제가 잇을것 같은 느낌)

위의방법외에 다른방법이 있을것두 같고.. 아무튼 제가 MS-SQL을 사용하니깐 전체적으로 개발자님들이 자주(많이) 사용하는 방법을 알고싶습니다..

그리고 시간되신다면 장점과 단점도 설명 바랍니다..

4  COMMENTS
  • Profile
    양용성 2002.07.03 23:09
    현업의 대부분 개발에서는 전 뭐 경력이 5년 밖에 안됐지만 다른 분들은 어쩔지 모르지만요.

    1. TDatabase 를 먼저 연결시킵니다. 무조건요
    TDatabase 컴포넌트 안에 TQuery 를 이용해서 사용자 테이블의
    유저의 정보를 검색하는 방법을 가장 많이 쓰죠.

    보통은 아이디만 입력하고 Enter 만 입력해도 어느 부서의 누구누구이며, 사원번호까지 나타나게 하죠 . 그 후에 패스워드를 입력하라고 나오게 합니다.

    님께서 말씀하신 TDATABASE의 연결 패스워드는 일반 사용자는 알아서도 그렇게 또 알려줘봤자 의미가 없으니깐 그 패스워드는 해당 관리자에게만 알려주고, 프로그램 유저의 아이디 패스워드는 따로 부여합니다.

    그럼 도움이 됐을까나~~


    - 국산 오라클 개발툴의 강자 -
    http://www.sqlgate.com

  • Profile
    J 2002.07.03 23:05
    위의 두가지 방법을 저도 써보았지만..

    지금은 메인폼의 OnCreate 이벤트에 로긴폼을 뛰우는 방법을 씁니다..

    예)procedure TmainForm.FormCreate(Sender: TObject);
        begin
             Try
                  LoginForm := TLoginForm.Create(Application);
                  LoginForm.ShowModal;
             finally
                  LoginForm.Free;
             end;

             if InitFlag = false then //로그인 화면 종료시 프로그램 종료
             begin
                    close;
                    Application.Terminate;
                    abort;
             end;
        end;

    로긴폼에서 정상적인 로긴이 이루어지면 InitFlag는 true
    상당히 깔끔합니다..

    그런데, 비교는 좀 곤란하군요..저마다 느낌의 차이가 있으니까요..
  • Profile
    김대훈 2002.07.04 00:07
    먼저 답변 감사합니다
    님의 글중에 몇가지 궁금한 것이있어 재질문을 올립니다.
    제가 두가지 방법을 제시하였는데 아래의코드는 어느것에 해당는지 궁금합니다. 아래방법대로 폼이 생성될때 생성을 해보니 잘안되어서요..
    그리고 Login Form부분을 어텋게 처리를 하였는지 알고싶습니다.

    제가 사용한 방법입니다.

    TDatabase에서 Login Prompt 옵션을 False하고 Main From의 OnCreate부분에
    Login From을 Modal로 뛰윘고 확인버튼에 아래의 코드를 실행하니깐
    DM(DataModule)에서 Access Violation Error가 발생합니다..
    DM이생성되기전에 참조를 한것 같은데.. 제가 잘못알고 있는건지.. 홀!
    아무튼 조언좀 바랍니다

    procedure TfrmLogin.OKLogin;
    begin
      try
        begin
          DM.DataBase.Params.Clear;
          DM.DataBase.Params.Add('USER NAME=' + edtAccount.Text);
          DM.DataBase.Params.Add('PASSWORD=' + edtPasswd.Text);
          DM.DataBase.Open;
        end;
        loginlogin := True //Login 성공판단
      except
       예외처리
      end;
    end;




  • Profile
    J 2002.07.04 00:57

    Project->option을 보시면..
    Auto-create form과 Availabel forms가 있죠.. 여기서
    DM(datamodule)은 반드시 메인폼 앞에 있어야 합니다....
    즉, DM이 메인폼보다 먼저 생성이 되어야 한다는 얘기죠..

    • 홍성락
      2002.07.04 00:31
      hsr//////////////////////////////////////////////////////////// 이미지 가 대칭된건지 회전이 된건지...
    • 김대훈
    • 2002.07.03 22:05
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 양용성
      2002.07.03 23:09
      현업의 대부분 개발에서는 전 뭐 경력이 5년 밖에 안됐지만 다른 분들은 어쩔지 모르지만요. 1. TDataba...
    • J
      2002.07.03 23:05
      위의 두가지 방법을 저도 써보았지만.. 지금은 메인폼의 OnCreate 이벤트에 로긴폼을 뛰우는 방법을 씁...
    • 김대훈
      2002.07.04 00:07
      먼저 답변 감사합니다 님의 글중에 몇가지 궁금한 것이있어 재질문을 올립니다. 제가 두가지 방법을 제시...
    • J
      2002.07.04 00:57
      Project->option을 보시면.. Auto-create form과 Availabel forms가 있죠.. 여기서 DM(datamodule)...
    • 주관석
    • 2002.07.03 21:26
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 염상철
      2002.07.04 19:12
      코딩중에..어디선가.....begin은 쓰시고..end를 안쓰시거나.. 아님..코딩중에..실수로 지워서..end가..nd...
    • 하얀까마귀
      2002.07.03 21:33
      안녕하세요 하얀까마귀 입니다. 아마 어딘가에 end or begin 을 잘못쓰신것 같은데 한번 확인해 보셍.. ...
    • 장태원
      2002.07.04 01:49
      그럴땐 이렇게 해보셈. 각 procedure니 function 이니 묶어서. begin 의 수와 end의 수가 같은지 각각 세...
    • 짱아
    • 2002.07.03 21:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2002.07.03 21:40
      안녕하세요 하얀까마귀 입니다. 잘못된 부분... 레코드가 0일 경우에...sql 안에는 insert 문이 들어가 ...
    • 델파이탐크루즈
      2002.07.03 21:15
      구지 Db와 연결된것 않써도 되여... ////////////////////////////////////////////////////////// // ...
    • cell
    • 2002.07.03 20:59
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 장태원
      2002.07.03 21:05
      저같으면 이렇게 할듯.    if(Fonts.Execute) then begin      ...
    • 하얀까마귀
      2002.07.03 21:03
      안녕하세요 하얀까마귀 입니다. 그냥 간단하게.. edSize1.Fornt := Fonts.Font; 하시면 됩니다. 그...
    • 항아
    • 2002.07.03 20:57
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 한철
    • 2002.07.03 20:47
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2002.07.03 21:25
      안녕하세요 하얀까마귀 입니다. Free 맞습니다. 델파이 6.0 에는 기본적으로 indy가 들어가 있어요.. ...
    • 하얀까마귀
      2002.07.03 21:28
      안녕하세요 하얀까마귀 입니다.. 확대 축소는 StretchBlt 함수를 사용하시면 됩니다 원하시는 크기 ...
    • 돌아버려
      2002.07.03 23:33
      까마귀님 감사합니다 그런데 조금만 .. 조금만 사용법좀 알려주십시요.^^;;;
    • 최용일
      2002.07.04 02:10
      안녕하세요. 최용일입니다. ActiveForm에서 아래와 같이 하시면 IWebBrowser2인터페이스를 얻을 수 있습...
    • 조성택
    • 2002.07.03 08:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 장태원
      2002.07.03 20:54
      Database 에 관해 많이 아는게 아니라서..제가 생각하는 트랜잭션을 말씀해 드리져. Update, Insert, ...
    • 하얀까마귀
      2002.07.03 22:01
      안녕하세요 하얀까마귀 입니다. 조금만 보충설명 하면... 트랜젝션은 1개의 테이블에 대한 작업할때...
    • 김명찬
    • 2002.07.03 07:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.07.03 10:47
      안녕하세요. 최용일입니다. while문다음에 FindClose써서 파일핸들 닫고 해보세요... ^^ 항상 즐코하...
    • 이종택
    • 2002.07.03 05:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 블랙썬
      2002.07.03 06:13
    • 변선희
    • 2002.07.03 04:44
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 블랙썬
      2002.07.03 05:52
      TQuery 를 보시면 AfterScroll 과 BeforeScroll 이벤트가 있습니다 여기 둘중 한군데에 코딩하심 되겠...
    • 변선희
      2002.07.03 22:51
      첨엔 잘 나오는데... 등록이나 수정버튼을 누르고 나면 또 클릭해도 에디트박스에 안나오는데.. 이...
    • 블랙썬
      2002.07.04 02:05
      등록이나 수정후 다시 검색을 안하셔서 그런거같은데요.. 즉, 조회할때랑 등록,수정할때랑 같은 TQuery ...
    • 방성용
    • 2002.07.03 04:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 블랙썬
      2002.07.03 06:12
      일단 콤보박스에 있는 이름으로 검색을 한후 검색된 메일주소를 에디트박스에 입력하면 되겠네요... ...
    • 신연근
      2002.07.03 03:35
      안녕하세요 글쎄요 제가 알기론 외부콤포넌트라고 해서 어떤 설정을 해주지 않아도 되는걸로 알고있는데...
    • 유종근
    • 2002.07.03 03:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 장태원
      2002.07.03 20:49
      ...
    • 신연근
      2002.07.03 03:37
      혹시 콤포넌트 추가하고 데파이메뉴중에 tools-environment options-library에 해당 pas화일을 추가해주...
    • 김대훈
    • 2002.07.03 03:18
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 델파이탐크루즈
      2002.07.03 03:31
      Ini File을 이용하세요.. 별로 어려운듯한 내용은 아닙니다. 대부분 Log-in의 처리는 Ini File을 이...
    • 김대훈
      2002.07.03 04:38
      먼저 답해주신것 감사합니다. 제가 지식이 짧아서 그런지 님의 답이 선듯 이해가 되질 않고 제가 요...
    • 하얀까마귀
      2002.07.03 03:45
      안녕하세요 하얀까마귀 입니다 트레이 아이콘을 만드는방법은 아실테고. 모르시면 강의실에 가시면 있을...