1

我正在使用XPage 作为代理 (XAgent),它使 SSJS 调用存储为 Java 设计元素的一些 Java 类。我希望由 XPage 发起的进程位于我当前登录浏览器的用户的上下文中。但是一切似乎都像我一样运行,我猜是基于 XPage 上的最后一个签名?

例如,在我的自定义类中,当我需要返回用户名时,以下会返回我的姓名:

DominoUtils.getCurrentSession().getEffectiveUserName()

使用老式 Domino 代理时,有效用户名由代理属性中的“以 Web 用户身份运行”或“代表运行”字段确定。

使用 XPage 时是否可以实现相同的功能?

4

2 回答 2

2

要调查您有许多活动部件:

  1. 将带有 session.getUserName() 和 session.getEffectiveUsername() 的打印语句添加到 XAgent(不是您的 Java 代码)
  2. 检查您的 DominoUtils 是否隐藏了 sessionAsSigner
  3. 如果 1 有效,但 3 无效,请考虑依赖注入:与其从 DominoUtils 获取会话,不如将其作为 XAgent 的参数传递给 Java 类

让我们知道怎么回事

于 2013-02-13T00:34:39.160 回答
0

在我的场景中,我可以通过以下任一方式解决大部分要求:

session.getEffectiveUserName()

或者:

context.getUser().getFullName()

在某些情况下,您需要将其封装为:

session.createName(string):NotesName

获取 NotesName-Object 表示。

于 2013-02-12T15:15:38.793 回答