微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检查用户是否有权访问Domino服务器

如何解决检查用户是否有权访问Domino服务器

我需要检查在names.nsf中注册的每个用户是否确实有权访问Domino服务器。

是否有一种简单的编程方法可以找到答案(我的意思是大约2-4条棘手的代码行)?

否则,我想我需要在服务器文档[Security \ Server Access]“访问服务器”和“不访问服务器”中解决(如果定义)。

解决方法

是的:“访问服务器”和“非访问服务器”是值得一看的地方。只看值。如果其中有组,则可以使用管理客户端及其“管理组”功能检查用户的组成员身份,在其中可以列出特定人员所属的所有组。

像这样,这只是一个点击问题,以检查是否有人可以访问服务器。

“非访问服务器”在此处覆盖“访问服务器”。

,

已经有一段时间了,但是如果@Torsten的答案没有帮助,请查看@UserNamesList函数。

例如,如果您要进行分析而不是在应用程序中进行分析,则可以在服务器上的某个位置创建域地址簿的副本(该地址本必须在服务器上,否则@UserNamesList将不起作用,并且您想复制一份,这样就不会弄脏您的域名通讯录,因为如果您搞砸了会遇到麻烦),然后创建一个在选定文档上运行的公式代理像这样的代码:

GrantAccessGroups := "List of groups" : "that are allowed access";
DenyAccessGroups := "Deny Access" : "some other group" : "any other group" : "that is listed in the server's Server document's Deny Access field";
SELECT @IsMember(Form; "User" : "Person");
FIELD AccessCheckResult := @If(
  !@IsNotMember(@UserNamesList(FullName[1]); DenyAccessGroups); "Denied";
  !@IsNotMember(@UserNamesList(FullName[1]); GrantAccessGroups); "Confirmed";
  "Neither confirmed nor denied"
);
FIELD AccessCheckDate := @Now;
"Lotus Notes used to not like ending agent formulas with a FIELD statement,so this is just a string that does nothing just in case this quirk is still there :-P"
  • 我不确定表单是“ User”还是“ Person”。只要我对彼此正确,@IsMember(Form; "User" : "Person")应该可以工作!

  • @UserNamesList返回给定用户的所有角色和组的名称。

  • @IsNotMember仅在两个列表之间没有重叠的情况下才为true。 (如果第二个参数中只有一些值位于第一个参数中,则@IsNotMember @IsMember均返回false,因此必须使用!@IsNotMember。)

  • 设置AccessCheckDate只是出于您自己的理智,以防万一事情无法正常进行并且您必须进行故障排除。

运行后,您可以更改视图以按AccessCheckResult进行分类

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。