0

我正在尝试登录 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;
       }

}

这里我正在初始化笔记密码。所以在这种情况下,它只是验证笔记密码。因此,即使用户在上面的函数中输入了无效的服务器名称条目,也会返回 true。

我试过 :

字符串 serverName = notesSession.ServerName;

但它显示空值。:(

4

3 回答 3

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.");
}
于 2009-09-23T15:14:58.787 回答
2

每个服务器都应该有一个 names.nsf 数据库,所以如果您使用 Mark 提到的技术并检查 names.nsf 数据库,那么它应该会告诉您服务器是否有效。

希望这可以帮助

也许如果您提供有关您尝试使用它的更多详细信息,我们可以帮助您找到更好的解决方案。

于 2009-09-23T15:32:46.957 回答
2

由于 names.nsf 不一定需要存在于每个服务器上,因此更安全的方法是使用 NotesSession 的 getDbDirectory 方法。如果无法访问服务器,这应该引发异常。

Domino.DbDirectory = _lotesNotesSession.getDbDirectory ("server_name");
于 2009-09-23T16:49:12.903 回答