Как проверить имя сервера Domino, для которого настроены заметки лотоса? используя C#

Я пытаюсь войти на сервер Domino. Для этого я беру пароль Lotus Notes и имя сервера Domino от пользователя.

if (notesPassword == "" && serverName == "")

{

MessageBox.Show ("Пожалуйста, введите имя сервера!! ");

вернуть;

}

еще

{

   if (connectToDomino(notesPassword, serverName))

   {

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

    }

   else

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

   }

} // иначе

И в

public bool connectToDomino(строка NotesPassword, строка strDominoServerName)

{

       try

       {
           if (_lotesNotesSession == null)
           {

              NotesSession notesSession = new Domino.NotesSessionClass();

              notesSession.Initialize(NotesPassword);


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

}

Здесь я инициализирую пароль Notes. Так что в этом случае это просто проверка пароля Notes. Таким образом, даже если пользователь введет неверную запись имени сервера выше, функция вернет true.

Я старался:

строка serverName = notesSession.ServerName;

Но это показывает нулевое значение.:(

3 ответа

Решение

Вы ориентируетесь на конкретную базу данных на сервере?

Я не верю, что вы можете проверить, что сервер действителен только потому, что комбинация сервер / база данных:

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.");
}

У каждого сервера должна быть база данных names.nsf, поэтому, если вы используете метод, упомянутый Марком, и проверьте базу данных names.nsf, то он должен сообщить вам, действителен ли сервер или нет.

Надеюсь это поможет

Возможно, если вы дадите более подробную информацию о том, для чего вы пытаетесь использовать это, мы могли бы помочь вам найти лучшее решение.

Поскольку names.nsf не обязательно должен существовать на каждом сервере, более безопасный подход - использовать метод getDbDirectory в NotesSession. Это должно вызвать исключение, если доступ к серверу невозможен.

Domino.DbDirectory = _lotesNotesSession.getDbDirectory ("server_name");
Другие вопросы по тегам