2013-08-23 80 views
0

我已經編寫了一個代理,它接受用戶名和驗證用戶,如果驗證成功,則重定向到數據庫的實際URL。通過電子郵件鏈接進行自動驗證

爲了取用戶名,我使用了@Formulas。因此,我可以在Notes客戶端的任何鏈接或熱點或按鈕中使用我的身份驗證方法。但是,我面臨問題通過提醒電子郵件鏈接發送此方法。

當我通過後端代理創建一個URL時,這個URL /熱點應該有我的代碼和@formula。簡而言之,我想通過我的電子郵件鏈接在URL /熱點內部傳遞@Dblookup。如何完成這項任務?

或者,如果有人點擊他的電子郵件中的鏈接,是否有任何替代方法來獲取用戶名?

只有Notes客戶端必須使用。


編輯#1:添加的場景進行更好的解釋:Web應用程序的

我們的用戶不樂意重新驗證自己的身份。所以,我們一直在嘗試類似於他們想打開一個webdoclink,他們通過他們的電子郵件在Notes客戶端中獲得了WebDoclink,所以他們不應該被要求再次進行身份驗證(因爲他們已經登錄到Notes客戶端)。

我們可以通過靜態應用程序鏈接來實現此目的,其中應用程序名稱不會更改。現在,我們面臨的挑戰是如何做到提醒電子郵件,這些電子郵件鏈接到特定的Web文檔(這裏的鏈接不是靜態的,它們與獨特的文檔ID不同)。 爲了這個工作,我們需要從他的電子郵件點擊鏈接的人的簡稱。

+0

這些電子郵件是發送給Notes客戶端用戶嗎? –

+0

@RichardSchwartz:是的。對於網絡來說,我們沒有問題。但是,這個問題僅與處理Notes客戶端電子郵件有關。 –

+1

我不明白。身份驗證通常由服務器自動完成。你通常不必爲此編寫代碼。你能稍微擴展一下,所以你能更好地理解這個問題嗎? – leyrer

回答

0

您可能需要發送一個動作熱點而不是URL熱點;但是如果沒有看到你的代碼真的在做什麼,就很難猜出它。另外,我認爲創建一個動作熱點可能需要將其從先前保存的富文本字段中複製,可能在配置文件中將其附加到您要發送的消息的富文本主體字段。 (這是我過去用來創建動作熱點的一種技術,我不確定是否有更好的選擇。)

而且由於這是用於Notes客戶端收件人,所以我可能探索的是使用商店形式的文檔消息,而不是普通的電子郵件消息。這樣你只需要在消息中發送的表單上有一個包含@DbLookup的按鈕。

+0

謝謝。我也想過使用profile doc。這裏有更好的解釋自己的代碼。 On Action按鈕/熱點: 'shortname:= @ DbLookup(「ShortName」); authenURL:=「http:// server/database /(agentname)?OpenAgent」; DocLinkToOpen:=「&url = https:// server/database/docUNID」; arg2:=「&uname =」+ shortname; @Command([Execute];「iexplore.exe」; AgentURL + DocLinkToOpen + arg2)' –

+0

因此,即使我使用profile doc或'doc.send'替代'store-form-in-document',我在計劃如何在此操作按鈕內傳遞'docLinkToOpen'參數時遇到困難。 我可以使用JavaScript做到這一點(jst猜測,不知道如何做到這一點)?我認爲像計算機領域可能工作。 –

+0

好的。我想我試着解決個人檔案文件,看看是否使用商店形式的文檔,我把它傳遞給電子郵件,然後按下按鈕從表單上的字段獲取價值。 (假設直到現在我工作:)) 歡迎任何其他建議。 –

0

我同意萊爾。 ACL(訪問控制列表)是用於決定功能的主要工具。例如,用戶可以訪問數據庫。然後你可以定義誰可以創建數據庫,創建電子郵件。最好使用ACL,以便您還可以使用角色和其他工具。基本的LotusScript可以在打開的事件上訪問ACL,或者在按鈕中進行測試。

+0

請參閱場景。 –

0

關於您描述的情況,如果問題是用戶必須重新驗證服務器上的每個Web應用程序,那麼最好在服務器上實施基於SSO/Session的身份驗證,然後對此解決方法進行編碼。使用基於會話的認證,用戶只需要認證一次。

admin help

基於會話的名稱和口令驗證發送客戶端的名稱和未加密的口令,並與每個請求發送到服務器。基於會話的身份驗證的不同之處在於,用戶的名稱和密碼信息僅在用戶第一次登錄到服務器時才通過網絡發送,而不是每次發佈請求。登錄後,用戶的名稱和登錄信息將存儲在用戶瀏覽器的Cookie中,瀏覽器會根據每個請求將Cookie發送到服務器。在履行請求之前,服務器會驗證Cookie中的信息並使用Cookie內容來標識登錄用戶。該會話僅在執行登錄的瀏覽器中有效。如果用戶關閉會話登錄發生的瀏覽器,用戶的會話將結束,並且cookie將被銷燬。

使用基於會話的名稱和密碼身份驗證比基本名稱和密碼身份驗證提供了對用戶交互的更好控制。例如,您可以自定義用戶輸入其名稱和密碼信息的表單。它還允許用戶在不關閉瀏覽器的情況下注銷會話。

如果您使用的是基於Windows的服務器,您甚至可以實施SPNEGO,使用der帳戶自動簽署用戶,因此完全消除登錄提示。

使用Domino 9,您也可以選擇使用Security Assertion Markup Language (SAML) to configure federated-identity authentication

就你而言,我將從基於會話的名稱和密碼身份驗證開始,以解決多重登錄問題。

+0

感謝您的建議。基於會話的名稱和密碼已經在我們的系統中用於多個服務器。問題在於通過Notes客戶端啓動weblink而不詢問登錄,甚至一次。 SPNEGO似乎是我們想要的東西。現在,我們做了一個解決方法。稍後,我們可能會考慮SPNEGO。 –

相關問題