【发布时间】:2012-10-28 07:30:21
【问题描述】:
我使用最简单的方法来维护会话,即:
只需创建 1 个 HttpClient 并将其用于每次服务器调用,它将自动处理 cookie 等,
但这里的问题是,当我关闭应用程序时,HttpClient 对象正在被破坏,正如预期的那样,因此我无法登录。
所以我修好了,这样:
将用户电子邮件和密码存储在共享首选项中,每次启动应用程序时调用登录功能(这会创建一个新会话)并使用相同的 HttpClient。
这里的问题是,Web 服务器中的每个会话都有 3 年的有效期。当我创建会话时(因为每次用户启动应用程序时我都调用登录),每次用户启动应用程序时。这会导致会话重复,或者说在服务器端创建了不必要的会话。
我做对了吗?我该如何解决这个问题?
谢谢
【问题讨论】:
-
有没有办法关闭服务器上的会话?您可以在每次关闭您的应用时执行此操作,或者如果您有权访问它,也可以更改服务器上的过期时间。
-
你的意思是,我必须在应用关闭时注销??
-
除非您的应用程序需要在后台运行(例如 GPS 跟踪),否则最简单的方法是在应用程序关闭时注销并在应用程序打开时登录。如果需要,您可以自动执行此操作,以免影响用户。
-
或者如果您也可以在服务器端工作,请设置超时,之后如果会话未处于活动状态,则会自动关闭。