3

我有一个应用程序可以匿名访问除几个之外的所有 xpage。我需要强制用户登录这些 xpage。是使用 beforepageload 事件检查并将用户重定向到正确的登录页面还是有更好的方法?

4

5 回答 5

10

最好的解决方案是向需要用户登录的 XPage 添加 ACL,这样您就不必依赖自己的代码,而是可以让服务器为您完成工作。

要添加 ACL,请转到 XPage 的所有属性并查找访问控制部分。然后,您可以添加一个或多个配置来定义谁拥有什么访问权限 - 例如,匿名者没有访问权限,或者组或角色中的人拥有访问权限等。

马特

于 2012-02-03T09:06:14.663 回答
8

是的,这将是一种有效的方法,也是我在自己的几个应用程序中处理这种情况的方式。

这是我使用的代码

if (context.getUser().getCommonName() == "Anonymous"){
   sessionScope.put("entryPage",context.getUrl().getPath() + context.getUrl().getQueryString())
   context.redirectToPage("/login.xsp");
}

我将此设置作为我刚刚从 beforePageLoad 事件中调用的函数。我正在重定向到另一个 XPage,但您也可以重定向到 database.nsf?login,它将使用服务器上的身份验证类型设置。

于 2012-02-02T23:24:24.027 回答
4

我完全支持以下提供的答案:Matt White

最好的解决方案是将 ACL 添加到 XPage

在我的 XPages 应用程序中,我使用以下代码:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">

  <xp:this.acl>
    <xp:acl>
       <xp:this.entries>
          <xp:aclEntry type="ANONYMOUS" right="READER"></xp:aclEntry>
          <xp:aclEntry type="DEFAULT" right="EDITOR"></xp:aclEntry>
       </xp:this.entries>
    </xp:acl>
 </xp:this.acl>

...XPage content here...

</xp:view>

它表现得非常完美!尝试一下!)

于 2013-04-09T11:22:04.633 回答
1

您可以使用以下示例进行解决。

1- OpenNTF - Xpages Dojo 登录自定义控件项目

2- 来自 Serdar Basegmez 的 LotusNotus.Com - 自动为 Web 应用程序验证 Notes 用户...

于 2012-02-02T23:28:14.173 回答
0

你也可以看看这里:

http://www.ovalbusinesssolutions.co.uk/thoughts/securing-your-xpages-website-using-public-access-2

如果您取消选中要强制登录的 XPage 的“对公共访问用户可用”框(默认情况下未选中),用户将被自动路由到登录,并在成功登录后返回到XPage 他试图打开。

于 2014-07-15T23:31:42.287 回答