domauthsessid cookie是在用户登录到domino服务器时创建的。在处理xpages时,我还看到了sessionID的cookie。sessionID是否特定于xpages?xpages如何使用这个sessionID?
发布于 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和更早的版本中才能使用。
发布于 2018-03-23 20:44:17
按如下方式创建一个Xpage:
<?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。
免责声明:在网上发现了代码(这是对该人的荣誉),这将不适用于客户端证书认证的服务器…。
为什么在讨论中这么晚才粘贴这个答案?因为我已经找到了答案,上面的方法都不起作用,所以对于以后的参考,…
发布于 2012-05-16 03:01:37
XPages使用sessionID cookie,这样服务器就知道它在处理哪个会话,所以当您运行像sessionScope.get( sessionScope )这样的代码时,它知道要查看哪个用户的cookie。
https://stackoverflow.com/questions/10606401
复制相似问题