通过电子邮件链接自动验证

时间:2013-08-23 02:40:20

标签: lotus-notes lotus lotusscript lotus-formula

我编写了一个代理,它接受用户名并验证用户身份,如果验证成功,则会重定向到数据库的实际URL。

为了取用户名,我正在使用@Formulas。因此,我可以在Notes客户端中的任何链接或热点或按钮中使用我的身份验证方法。但是,通过提醒电子邮件链接发送此方法我遇到问题。

当我通过后端代理创建URL时,此URL /热点应该包含带有@formula的代码。简单来说,我想通过我的电子邮件链接在URL / hotspot内传递@Dblookup。如何完成这项任务?

或者,如果有人点击其电子邮件中的链接,是否有其他方法可以获取用户名?

只能使用Notes客户端。


编辑#1:添加方案以获得更好的解释:

我们的用户不乐意为Web应用程序重新验证自己。所以,我们一直在尝试一些类似的东西,如果他们想要打开一个webdoclink,他们通过他们在Notes客户端的电子邮件,所以他们不应该被要求再次进行身份验证(因为他们已经登录到客户端)。

我们可以为静态应用程序链接实现此目的,其中应用程序名称不会更改。现在,我们面临的挑战是如何为提醒电子邮件执行此操作,这些电子邮件具有指向特定Web文档的链接(此处的链接不是静态的。它们因独特的文档ID而不同)。 为此,我们需要从他的电子邮件中点击该链接的人的简称。

3 个答案:

答案 0 :(得分:0)

您可能需要发送一个Action热点而不是一个URL热点;但是如果没有看到你的代码真正在做什么就很难猜到。此外,我认为创建一个Action热点可能需要从以前保存的富文本字段中复制它,可能在配置文件中,并将其附加到您要发送的邮件的富文本正文字段。 (无论如何,这是我过去用来创建动作热点的技术。我不确定是否有更好的替代方案。)

由于这是针对Notes客户端收件人的,因此我可能会探索的另一种技术是使用store-form-in-document消息而不是普通的电子邮件消息。这样你只需要在消息中发送一个包含@DbLookup的按钮。

答案 1 :(得分:0)

我同意莱耶的观点。 ACL(访问控制列表)是用于决定功能的主要工具。例如,用户可以访问数据库。然后,您可以定义谁可以创建数据库,创建电子邮件。最好使用ACL,这样您也可以使用角色和其他工具。基本LotusScript可以在打开事件上访问ACL或在按钮中进行测试。

答案 2 :(得分:0)

关于您描述的方案,如果问题是用户必须为服务器上的每个Web应用程序重新进行身份验证,那么您最好在服务器上实现基于SSO / Session的身份验证,然后对此变通方法进行编码。使用基于会话的身份验证,用户只需进行一次身份验证。

来自admin help

  

基于会话的名称和密码身份验证发送客户端的名称和未加密的密码,并随每个请求一起发送到服务器。基于会话的身份验证的不同之处在于,用户的名称和密码信息仅在用户首次登录服务器时通过网络发送,而不是每次发布请求时发送。登录后,用户的名称和登录信息存储在用户浏览器的cookie中,浏览器会在每次请求时将cookie发送到服务器。在接受请求之前,服务器会验证cookie中的信息并使用cookie内容来识别登录用户。该会话仅在执行登录的浏览器中有效。如果用户关闭发生会话登录的浏览器,则用户的会话将结束,cookie将被销毁。

     

使用基于会话的名称和密码身份验证可以比基本的名称和密码身份验证更好地控制用户交互。例如,您可以自定义用户输入其名称和密码信息的表单。它还允许用户在不关闭浏览器的情况下退出会话。

如果您使用的是基于Windows的服务器,您甚至可以实施SPNEGO,使用Windows帐户自动签署用户,从而完全取消登录提示。

使用Domino 9,您还可以选择使用Security Assertion Markup Language (SAML) to configure federated-identity authentication

在您的情况下,我将从基于会话的名称和密码身份验证开始,以解决多重登录问题。