如何在IBM Notes上标识具有不可更改编号的用户

时间:2018-03-20 09:14:40

标签: authentication lotus-notes lotusscript

我们这里有一些IBM Notes数据库,我认为至少有一百个,如果我们必须识别用户,我们目前正在使用给定的名称。我们还将此与此处所有员工的数据库连接起来,使用它来执行时间管理和管理工作。

因此我们需要确定哪个用户是哪个,正如我所说的那样,我们目前正在通过名称来做。但是名称会发生​​变化,所以现在我们想要更改为不变的ID。我以为我们可以使用密钥标识符,或者至少使用其中一个。所以我的问题是,有没有办法通过Lotus Script获取它?如果没有,是否有另一种方法来识别某个密钥文件的用户?

2 个答案:

答案 0 :(得分:1)

Lotus Notes和Domino没有任何内置的用户唯一密钥标识符。它从未成为设计的一部分。您不能使用Person文档的noteid,因为它从Domino目录的一个副本到另一个副本不同,您不应该使用unid,因为虽然它在副本中是稳定的,但如果您仍然可以更改必须重新创建个人文档,如果员工离开公司然后回来,或者个人文档被损坏,您可能需要这样做。

大多数大型组织处理此问题的方法是在“个人”文档中设置EmployeeID字段,并将其用作唯一标识符。某些组织可能还会创建唯一标识符并将其用于ShortName。

答案 1 :(得分:0)

虽然我一般不会理解Richards的回答,但可以在单独的“创建时组成”字段中“捕获”文档ID(UNID)。然后,这将保留一个静态的“唯一”32字符引用。设置完成后,除非您有更改过程,否则不应更改。 UNID基于/来自时间戳,因此即使在使用多年或数百万个文档后,它们也极不可能被重用或与未来系统生成的unid冲突。此捕获的值可能与实际系统分配的unid一致,也可能不一致,但这通常无关紧要。

如果您对系统unid的副本不满意,则可以临时使用它,直到可以使用外部ID引用覆盖它。或者,使用经过验证的外部“guid”引用并将其分配给您要跟踪的记录。

如果raw unid为您创建了侧面问题,请使用@password将其哈希到另一个唯一值。这会生成一个快速/旧的MD5样式哈希,但对于引用ID来说已经足够了。

还有一点需要注意的是,将先前的名称保留在列表中也是可行的,因此匹配“旧名称”仍然可行。在person doc中创建一个额外的字段(管理员可能会讨厌你这样做)或者将旧名称添加到'fullname'字段列表中。这通常包含名称变体列表。如果您将旧名称添加到列表的底部(即:追加),您和系统可以匹配此名称(用于登录和路由)但Notes仅使用列表中的第一个名称作为用户'官方'名称(对于读者/作者字段等),应该是当前名称。要查找名称,只需在($ Users)视图中查找名称(如果使用FullName字段)或使用您自己的字段创建新视图(管理员可能再次讨厌您)。