2009-09-23 24 views
0

我想登錄Domino服務器。 爲此,我正在從用戶處取得Lotus Notes密碼和Domino服務器名稱。如何檢查蓮花筆記配置的Domino服務器的名稱?使用C#

如果(notesPassword == 「」 & &服務器名稱== 「」)

{

MessageBox.Show( 「請輸入服務器名!!」);

return;

}

其他

{

if (connectToDomino(notesPassword, serverName)) 

    { 

     MessageBox.Show("Connection Established Succesfully!!.."); 

    } 

    else 

    { 
    MessageBox.Show("Connection Fail.Please Login Again To Begin"); 

    } 

} //其他

公共BOOL connectToDomino(字符串NotesPassword,串strDominoServerName)

{

 try 

     { 
      if (_lotesNotesSession == null) 
      { 

       NotesSession notesSession = new Domino.NotesSessionClass(); 

       notesSession.Initialize(NotesPassword); 


      } 
      return true; 
     } 
     catch(Exception ex) 
     { 
      return false; 
     } 

}

我在這裏初始化筆記password.So在這種情況下,它只是驗證Notes密碼。 所以即使用戶輸入無效的服務器名稱以上的函數也會返回true。

我試過了:

string serverName = notesSession.ServerName;

但它顯示空值。 :(

回答

2

您在服務器上針對特定的數據庫

我不相信你可以檢查服務器是否有效僅僅是服務器/數據庫組合是:

Domino.NotesSessionClass _lotesNotesSession = new Domino.NotesSessionClass(); 
//Initializing Lotus Notes Session 
_lotesNotesSession.Initialize("my_password"); 
Domino.NotesDatabase _serverDatabase = _lotesNotesSession.GetDatabase("some_server", "names.nsf", false); 
if (_serverDatabase == null){ 
    System.Console.Writeline("Can not connect to server."); 
} 
2

每個服務器應該有一個NAMES.NSF數據庫,因此,如果您使用由Mark提到的技術,併爲您的names.nsf數據庫,那麼它應該告訴你,如果服務器是有效還是無效。

希望這有助於

也許如果您提供更多關於您嘗試使用此功能的詳細信息,我們可以幫助您找到更好的解決方案。

+0

+1,出色的想法,我編輯我的答案使用「names.nsf」數據庫。 – Mark 2009-09-23 16:34:54

2

由於names.nsf並不一定需要存在於每臺服務器上,所以更安全的方法是使用NotesSession的getDbDirectory方法。如果服務器無法訪問,這應該會引發異常。

Domino.DbDirectory = _lotesNotesSession.getDbDirectory ("server_name");