我的.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();
}
每Henrik的答案是正確的,但他是指一個全球性的設置,讓使用Notes API編寫的所有程序訪問Notes客戶機,而不會提示輸入密碼。如果您的客戶認爲這是一個不可接受的安全風險,但仍然希望避免代碼的密碼提示,那麼您將不得不調查Notes C API的Extension Mangager功能。 Notes C API工具包中有非常基本的示例代碼,但您必須實現自己的安全協議來識別您的代碼並提供Notes密碼。 –
我應該補充說,既然您提到客戶已經集成了Windows和Notes登錄,我並不是100%確定使用擴展管理器功能是否可行。 GetPasswordEMCallback要求您返回Notes ID密碼,但在最新版本的Notes/Windows登錄集成(稱爲「Notes共享登錄」與舊的「Notes Single Login」)中,我相信用戶和管理員都不知道Notes ID密碼是從Windows憑據派生而來的。 –