XPages:context.getUser().getRoles() 偶尔工作

XPages: context.getUser().getRoles() working sporadically

这很奇怪。

我以 Admin Mustermann 身份登录,但当我尝试确定用户角色时,我什么也没得到:

current user:
<xp:text
    escape="true"
    id="computedField4"
    value="#{javascript:context.getUser()}">
</xp:text>
roles:
    <xp:text
    escape="true"
    id="computedField5"
    value="#{javascript:context.getUser().getRoles()}">
</xp:text>

如果我打开我的 XPages 调试工具栏,它会告诉我我是匿名的。

这是我的 ACL,它确认 Admin Mustermann 应该至少有三个角色:

我被难住了。

我宁愿使用 database.queryAccessRoles(session.getEffectiveUserName()) 而不是使用上下文。

我创建了一个用于获取大量 ACL 和用户信息的 bean 片段:http://openntf.org/XSnippets.nsf/snippet.xsp?id=sysinfouser-acl-info-custom-control-java-bean

奇怪的是,@UserRoles 更可靠。试试改用这个:

roles:
    <xp:text
    escape="true"
    id="computedField5"
    value="#{javascript:session.evaluate("@UserRoles");}">
</xp:text>

在未断开连接的情况下,在本地的 Notes 客户端中使用 XPage 时,我们遇到了 context.getUser().getRoles() 失败的问题。您可以通过某种方式重新配置您的位置文档来避免这种情况,但我从来没有想到这一点。在 PMR 期间建议使用旧公式语言的东西,即使组合配置像我的一样是错误的,它仍然有效。