You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取HCL Domino远程控制台发送Tell命令的用户名称

针对Domino插件远程Tell命令用户身份获取的解决方案

核心思路

Domino在处理远程控制台的Tell命令时,会保留发起命令的用户身份信息,只是默认的session.getCommonUserName()因插件运行在服务器上下文返回服务器名称,需通过底层API或消息队列附加信息提取真实用户身份,以此实现权限限制。

具体实现方案

1. C/C++插件直接调用Domino C API

直接使用Domino C API中的OSGetConsoleUser函数,该函数可返回当前执行控制台命令的用户名。在自定义Addin的命令处理逻辑中调用此函数,就能获取发起Tell命令的远程用户名称,之后可与服务器文档安全群组做比对,完成权限控制。

2. Java插件通过JNI封装调用C API

若采用Java开发插件,因Java API未直接暴露该功能,需通过JNI桥接实现:

  • 编写C语言的JNI桥接代码,内部调用OSGetConsoleUser获取用户名
  • 将编译后的本地库(.dll/.so)部署到Domino服务器对应目录
  • 在Java插件中加载本地库并调用方法获取用户身份

3. 解析消息队列的附加信息

远程控制台发送的Tell命令会进入Addin的消息队列,通过NotesMessageQueue的GetMessage方法获取完整消息结构,其中dwData2字段可能包含发起用户的会话标识,结合NSFSessionGetUserName等API可提取用户名。此方式需熟悉Domino消息机制,兼容性可能受版本影响。

额外提示

  • 测试时可分别在服务器本地控制台和远程控制台执行Tell命令,验证获取的用户身份是否准确
  • 权限校验逻辑建议直接读取服务器文档的安全群组列表,通过Domino API的isMember方法判断用户是否在授权群组内

内容的提问来源于stack exchange,提问作者Andy Brunner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 16:05:23