Ios 如何在webobjects中使用sessionId获取现有会话?

Ios 如何在webobjects中使用sessionId获取现有会话?,ios,iphone,session,webobjects,Ios,Iphone,Session,Webobjects,我们试图通过使用会话id和以下构造函数来获取会话对象 WOSession session = new WOSession(sessionID); 此代码将获取现有会话,否则将使用该id创建新会话。 如果它创建了一个新会话,我们将有两个会话具有相同的会话ID 因此,请让我知道,如何使用sessionID获取现有会话?通常您只需通过session()或existingSession()访问WODirectAction或WOComponent子类中的会话即可? 为什么需要手动恢复它 如果您真的想手动

我们试图通过使用会话id和以下构造函数来获取会话对象

WOSession session = new WOSession(sessionID);
此代码将获取现有会话,否则将使用该id创建新会话。 如果它创建了一个新会话,我们将有两个会话具有相同的会话ID


因此,请让我知道,如何使用sessionID获取现有会话?

通常您只需通过
session()
existingSession()
访问WODirectAction或WOComponent子类中的会话即可? 为什么需要手动恢复它

如果您真的想手动执行此操作,可能您正在寻找以下内容:

WOSessionStore st = application().sessionStore()
sn = st.checkOutSessionForID(snID, context())
...
st.checkInSessionForContext(snID)
或者(如果你知道你在做什么;-)


实际上,当登录到我的应用程序时,屏幕上会出现两个框架。在一个框架中,有访问其他应用程序的链接。这些链接将调用应用程序的直接操作,我们要访问的。DA将引导您进入该应用程序的主屏幕。因此,它将在另一个框架中创建另一个会话。如果单击注销,我们只能终止该框架中的一个会话。因此,注销后,如果我们使用浏览器中的“后退”按钮,我们可以轻松访问应用程序。所以我们应该终止这两次会议。我不完全理解你在这里说的话。(也许重申一下显而易见的:)但是如果你在一个浏览器中有两个会话,你还需要确保会话id不是存储在cookie中,而是存储在URL中。我们有多个应用(项目)。为了从单个导航页面访问这些内容,我们创建了一个应用程序。导航应用程序包含登录页和主页。登录后,主页将分为两个框架。第一个框架包含访问应用程序的链接,第二个框架为空(欢迎消息)。当链接被点击时,它将调用相应应用程序的DirectAction(它将导航到应用程序主屏幕),并将显示在第二帧中(替换欢迎消息)。因此,我们有两个应用程序会话(导航应用程序和单击的应用程序)。如果我们单击第二帧中的注销,我们只能终止第二帧中的会话,并在完整浏览器中导航到注销消息屏幕。在此之后,如果我们点击浏览器中的后退按钮,它将进入导航应用程序主屏幕(这是两个框架,其中包含应用程序列表和欢迎消息)。因为我们没有终止第一帧的会话(导航应用程序的会话),所以未经授权的用户可以访问我的应用程序。为此,我希望在单击注销时终止这两个会话。
st.restoreSessionForID(snID, context())