首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xpage - sessionID和DomAuthsessId

xpage - sessionID和DomAuthsessId
EN

Stack Overflow用户
提问于 2012-05-16 02:06:57
回答 6查看 2.6K关注 0票数 0

domauthsessid cookie是在用户登录到domino服务器时创建的。在处理xpages时,我还看到了sessionID的cookie。sessionID是否特定于xpages?xpages如何使用这个sessionID?

EN

回答 6

Stack Overflow用户

发布于 2012-05-16 02:27:38

摘自http://www-01.ibm.com/support/docview.wss?uid=swg27021314

问:有时,当XPage被提交时,它会将SessionID添加到URL中,并且一些JavaScript停止工作。那是什么SessionID?

答:这是由于HTTP的工作方式造成的。HTTP是无状态的,因此浏览器必须将ID传递给服务器,以便在服务器上保持会话打开。有两种方式可以传递此ID。

1-将ID作为URL的一部分传递

2-将ID作为cookie的一部分从浏览器传递

第二种方式是首选的方式。但是对于第一个页面,XPages引擎不知道连接到该页面的浏览器是否支持cookie,因此它首先尝试传递一个ID和一个cookie。在第二个请求中,它查找cookie,如果cookie在那里,它就从URL中删除ID。因此,如果您查看所有应用程序服务器,它们都是这样工作的。现在在XPages中有一个属性说“假设客户端有cookie”,在这些情况下根本不使用会话ID。因此,这会破坏一些不支持启用cookies的浏览器。

Lotus Domino 8.5.3不能使用sessionID URL参数-只有在8.5.2和更早的版本中才能使用。

票数 2
EN

Stack Overflow用户

发布于 2018-03-23 20:44:17

按如下方式创建一个Xpage:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xp:view
    xmlns:xp="http://www.ibm.com/xsp/core"
    rendered="false"
>
    <xp:this.beforeRenderResponse><![CDATA[#{javascript:

var externalContext = facesContext.getExternalContext();
var request = externalContext.getRequest();
var response = externalContext.getResponse();
var currentContext = com.ibm.domino.xsp.module.nsf.NotesContext.getCurrent();
var session = request.getSession(false);
var sessionId = session.getId();
// flush the cookies and invalidate the HTTP session...
for(var cookie in request.getCookies()){
    cookie.setValue("");
    cookie.setPath("/");
    cookie.setMaxAge(0);
    response.addCookie(cookie);
}
session.invalidate();
// now nuke the XSP session from RAM, then jump to logout...
currentContext.getModule().removeSession(sessionId);
externalContext.redirect("?logout");
}]]></xp:this.beforeRenderResponse>
</xp:view>

然后创建指向上述Xpage…的链接或页面链接

这将注销您并删除所有cookies。

免责声明:在网上发现了代码(这是对该人的荣誉),这将不适用于客户端证书认证的服务器…。

为什么在讨论中这么晚才粘贴这个答案?因为我已经找到了答案,上面的方法都不起作用,所以对于以后的参考,…

票数 1
EN

Stack Overflow用户

发布于 2012-05-16 03:01:37

XPages使用sessionID cookie,这样服务器就知道它在处理哪个会话,所以当您运行像sessionScope.get( sessionScope )这样的代码时,它知道要查看哪个用户的cookie。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10606401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档