1

我需要构建一个 XPage 来获取用户的公共和私人日历条目。我可以通过在 SSJS 中使用 sessionAsSignerWithFullAccess 来实现这一增强。

但是,我的代码在 Notes/Domino 9 中的 XPiNC 中不起作用。似乎 sessionAsSignerWithFullAccess 无法按我的预期工作,只能访问公共文档。

有没有办法解决这个问题?

顺便说一句,我也尝试在 beforePageLoad 中调用 Lotusscript 代理,它代表管理员和 Web 访问用户,但没有运气。Lotusscript 也只访问公共文档。

任何建议将不胜感激!先感谢您。

4

1 回答 1

1

我相信 sessionAsSigner 会话在使用 XPiNC 时以当前用户身份运行,而不是 XPage 的签名者。尽管这样做很不方便,但从安全的角度来看它是有意义的:虽然 Domino 服务器可以随意充当它喜欢的任何名称,但 Notes 客户端仅充当活动 ID。正常的 XPiNC 设置从本地客户端运行所有内容,因此,从安全角度来看,它与访问非 XPage 元素相同。

您可以通过输出 sessionAsSignerWithFullAccess.getEffectiveUserName() 来仔细检查我的想法是否准确。如果我是对的,它将是当前运行的用户,而不是签名者。

一种解决方法是将 XPiNC 应用程序设置为在服务器上执行(我相信 9 中的新功能)。它有一些警告(https://frostillic.us/f.nsf/posts/how-i-got-xpinc-run-on-server-with-sso-working),但它有很多优点性能和可预测性的观点:由于应用程序实际上在服务器上运行的方式与在 Web 浏览器中的运行方式基本相同,因此它(可能)也支持 sessionAsSigner。

于 2014-08-24T17:23:55.293 回答