如何在没有调用登录的情况下已存在会话时获取channelSet

时间:2010-07-21 20:36:10

标签: flex blazeds

在我的Flex应用程序中,每次浏览器刷新时都会重置channelSet。如果您已经过身份验证并刷新了页面并检查了channelSet.authenticated,则会显示false,但是您的remoteObject调用仍然有效,因为服务器会话仍然存在。

我有一个服务调用,用于检查服务器上的会话,并且可以在用户已经过身份验证但未注销时识别出存在的会话,但是如何绕过登录并仍然将channelSet.authenticated设置为true而不调用当channelSet.login()回到页面时(当然是在发生超时之前)?

更新: 如果退出浏览器,则不会关闭用户会话。目前它确实让你再次登录。但是有一个现有的会话,所以如果你不是会话中的用户,blazeds会返回重新验证错误,如果你是用户,它还允许你使用任何密码登录,因为它看到会话已经过身份验证

那么我怎么能这样做才能在关闭浏览器或刷新时使会话失效?我可以通过在应用程序启动时自动注销来实现,但这似乎并不优雅。

或者我可以这样做:     <body onunload="MyFlexApp.myFlexFunction();"&GT;

并在离开页面时自动注销。

处理此问题的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

但是他们没有经过身份验证......你怎么能确定现在使用应用程序的人和以前一样?关闭浏览器应该是打破与应用程序的链接的好方法。如果网吧中的下一个人只是通过访问你的页面就可以访问,这有点破坏了安全性吗?

这就是为什么,即使有当前会话,你也应该强制重新认证。