2013-01-09 47 views
1

我的.NET(WPF和C#)應用程序通過Interop.Domino與本地Lotus Notes客戶端成功集成。它提示用戶輸入他的Lotus Notes用戶名/密碼(它們實際上是Windows憑據),然後在用戶的本地Lotus Notes郵箱中創建郵件。 我使用下面的代碼,它工作正常(創建電子郵件的部分不包括在內)。 但是,客戶希望它自動工作,無需提示用戶輸入密碼。 Lotus Notes安裝使用Windows憑據,但我的應用程序沒有。 用戶在手動打開他們的Lotus Notes時不會提示輸入密碼,所以我認爲它應該是可能的。通過Windows憑據與.NET代碼集成在一起的筆記客戶端

如何使用Notes打開會話並告訴它僅使用登錄到Windows的用戶的任何Windows憑據?

 NotesSession notesSession = new NotesSession(); 
     notesSession.Initialize(); 

     // An empty servername means we go to the locally installed Lotus Notes 
     string serverName = String.Empty; 
     NotesDbDirectory directory = notesSession.GetDbDirectory(serverName); 

     NotesDatabase notesDatabase = directory.OpenMailDatabase(); 

     if (!notesDatabase.IsOpen) 
     { 
      notesDatabase.Open(); 
     } 

回答

1

當其他基於Notes的程序訪問Notes數據(Notes運行時)時,您可以告訴Notes不要提示輸入密碼。

http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/topic/com.ibm.notes85.help.doc/sec_pass_otherapps_t.html的細節

+1

每Henrik的答案是正確的,但他是指一個全球性的設置,讓使用Notes API編寫的所有程序訪問Notes客戶機,而不會提示輸入密碼。如果您的客戶認爲這是一個不可接受的安全風險,但仍然希望避免代碼的密碼提示,那麼您將不得不調查Notes C API的Extension Mangager功能。 Notes C API工具包中有非常基本的示例代碼,但您必須實現自己的安全協議來識別您的代碼並提供Notes密碼。 –

+0

我應該補充說,既然您提到客戶已經集成了Windows和Notes登錄,我並不是100%確定使用擴展管理器功能是否可行。 GetPasswordEMCallback要求您返回Notes ID密碼,但在最新版本的Notes/Windows登錄集成(稱爲「Notes共享登錄」與舊的「Notes Single Login」)中,我相信用戶和管理員都不知道Notes ID密碼是從Windows憑據派生而來的。 –