2011-10-17 2 views
0

다음 코드를 실행하고 암호 입력 대화 상자를 표시합니다.C++ API로 Lotus Notes 데이터베이스를 인증하는 방법은 무엇입니까?

LNNotesSession session; 
    LNDatabase db; 
    LNSetThrowAllErrors(TRUE); 
    LNFormArray forms; 
    LNIDFile idfile; 
    LNCertifier cert; 
    LNDatetime expired; 

    try { 
     session.Init(); 

     session.GetDatabase("names.nsf", &db, "ipanema"); 
     db.Open(); 
     db.GetForms(&forms); 
     for (int i = 0; i < forms.GetCount(); i++) { 
      LNForm form = forms[i]; 
      form.Open(); 
      LNString name = form.GetName(); 
      form.Close(); 
     } 
     db.Close(); 
     session.Term(); 

    } catch(LNSTATUS error) { 
     char errorBuf[LN_ERROR_MESSAGE_LENGTH]; 
     LNGetErrorMessage(error, errorBuf); 
     MessageBox(NULL, errorBuf, "Lotus Notes Errors", MB_OK); 
    } 

enter image description here

어떻게 코드 대신 수동으로 암호를 입력 할 수 있습니까?

답변

1

nextpwd 옵션이 도움이 될 수 있습니다. 설명 된 here.

0

과거에 사용했던 몇 가지 다른 옵션이 있습니다. 하나는 코드를 실행하기위한 ID를 생성하고 암호없이 생성하는 것입니다. 그런 다음 ID 파일을 보호하기 위해 다른 보안 수단을 사용했습니다.

다른 옵션은 클라이언트 단일 로그온을 활성화하고 로그온 한 Windows 사용자와 Notes 사용자간에 암호를 동기화하는 것입니다. 이 은이 시나리오에서이 작동해야하지만이 기능을 사용하여 Notes 클라이언트 자체의 프롬프트를 건너 뜁니다.

0

답변은 상황에 따라 다릅니다.

  1. 코드는 사용자의 워크 스테이션에서 실행중인 경우, 당신은 사용자가 노트에 로그인하는 경우 암호 프롬프트를 표시하지 않지만 사용자가 아닌 경우 표시 암호 프롬프트를 싶어 로그인하면 Notes 클라이언트에 내장 옵션이 있습니다. Notes 8.x에서는 사용자 보안 대화 상자에 있으며 옵션 레이블은 "다른 Notes 기반 프로그램에서 암호를 묻지 않습니다"입니다. 이 옵션 뒤에 "보안이 약합니다"라는 작은 태그가 있지만, 모두의 암호 프롬프트 무시 방법이 있습니다.

  2. 코드가 사용자 워크 스테이션에서 실행되고 있으며 코드가 사용자가 실제로 Windows에 로그인 할 때만 실행되는 경우 Ken의 두 번째 제안이 적절할 수 있습니다. 단, Notes 클라이언트의 싱글 사인온 기능은 대개 사례별로 활성화되지 않으며 조직의 보안, Domino 및 Windows 관리자가 개입해야합니다.

  3. 사용자가 일상적으로 액세스하지 않는 잠긴 컴퓨터에서 코드가 실행되는 경우 조직의 보안 담당자가 암호가없는 ID 파일을 가지고 있어도 Ken의 첫 번째 제안이 적절합니다.

  4. 거의 모든 다른 경우 Jasper가 Notes C API에서 Extension Manager hook을 사용하는 것이 적절하며 C++ API 툴킷에 포함되어있는 extpwd.c 코드 샘플을 사용하는 것이 좋습니다. 그러나 password.txt라는 파일에 암호를 저장하지 마십시오! 어디에 저장 하든지 암호를 암호화해야합니다. 그렇지 않으면 암호가없는 ID 파일을 사용할 때와 마찬가지로 안전하지 않습니다. (실제로 코드를 암호화하여 저장하는 것조차도 코드를 분석하는 누군가가 키를 복구 할 수 있기 때문에 좋은 보안 관행은 아니지만 편의를 위해 타협하는 것 중 하나입니다.)

관련 문제