使用Java向Lotus Notes客户端输入错误的用户ID密码时控制台挂起
我正在编写一个独立的Java应用程序,它使用Notes.jar与LotusNotes客户机对话。应用程序无法访问Domino服务器,这就是我使用Lotus Notes客户端的原因 用户id文件位置和密码由用户通过我的应用程序提供,然后我的应用程序使用这些信息连接到LotusNotes客户机 在客户机中,我首先使用应用程序在Lotus notes客户机的notes.ini文件中设置的默认ID创建会话,然后切换ID,即:使用Java向Lotus Notes客户端输入错误的用户ID密码时控制台挂起,java,passwords,lotus-notes,userid,Java,Passwords,Lotus Notes,Userid,我正在编写一个独立的Java应用程序,它使用Notes.jar与LotusNotes客户机对话。应用程序无法访问Domino服务器,这就是我使用Lotus Notes客户端的原因 用户id文件位置和密码由用户通过我的应用程序提供,然后我的应用程序使用这些信息连接到LotusNotes客户机 在客户机中,我首先使用应用程序在Lotus notes客户机的notes.ini文件中设置的默认ID创建会话,然后切换ID,即: Session session = NotesFactory.createSe
Session session = NotesFactory.createSession((String) null, (String) null, "defaultPassword");
session.createRegistration().switchToID(userSuppliedIDFilename, userSuppliedPassword);
如果用户提供的密码正确,则一切正常
但是,如果密码错误,则switchToID()
方法会提示控制台输入正确的密码:
The ID file being used is: CN=Test Test/=Development
Enter password (press the Esc key to abort):
我的Java应用程序无法响应此控制台提示,因此挂起
有没有办法停止提示。i、 e.使用switchToID()
方法在密码错误时引发异常,以便应用程序可以向用户返回错误消息
我的应用程序是否有办法将Esc
键发送回提示符,以便我可以按照Notes返回的消息中的指示中止该过程
是否有更好的方法使用用户输入的ID文件和密码创建客户端会话
谢谢,
Richard据我所知,如果会话创建不成功,它将抛出NotesException
NotesFactory.createSession((String)null, (String)null, passwordString) throws NotesException
如果密码与Notes用户ID密码匹配,则授予访问权限。
你为什么不试试。。抓住它
try {
Session session = NotesFactory.createSession((String) null, (String) null, "defaultPassword");
if(session != null) {
//do sth.
}
}
catch (NotesException e) {
}
您可以切换到
usersuppliedFileName
,而无需使用switchToID()
,并且可以通过以下方式捕获错误的userSuppliedPassword
:
NotesThread.sinitThread();
Session session = NotesFactory.createSession((String) null, (String) null, "defaultPassword");
session.setEnvironmentVar("KeyFileName", userSuppliedIDFilename, true);
session.recycle();
NotesThread.stermThread();
NotesThread.sinitThread();
try {
session = NotesFactory.createSession((String) null, (String) null, userSuppliedPassword);
} catch (NotesException e) {
// wrong password for userSuppliedIDFilename
// ask user for correct password...
}
谢谢使用
createSession(String)null,(String)null,passwordString)
会抛出与switchToID(userId,password)
方法不同的错误。唯一的缺点是我必须在登录之前更新磁盘上的notes.ini文件。但只要我同步notes.ini文件更新,这就可以了。很高兴听到这个消息。如果足够的话,你可以投票或完成回答的问题。太好了!,这对我有效,但我替换了第二条语句:Session Session=NotesFactory.createSession((String)null,(String)null,“defaultPassword”)代码>通过这个:Session Session=NotesFactory.createSession()代码>