我有一个xpage应用程序,要求用户使用lotus notes用户和相关的Internet密码登录。
打开应用程序的默认浏览器是Internet Explorer。
在应用程序中,我有一个注销按钮,它看起来像这样
<xp:button value="Logout" id="button1">
<xp:eventHandler event="onclick" submit="false">
<xp:this.script>
<xp:executeClientScript>
<xp:this.script><![CDATA[var logout=window.confirm ("Do you want to logout this application?");
if (logout==true)
{
//close the browser
window.close()
}
]]></xp:this.script>
</xp:executeClientScript>
</xp:this.script>
</xp:eventHandler>
</xp:button>
我注意到,如果我打开多个Internet Explorer,当我关闭一个浏览器并再次打开浏览器访问该应用程序时。 该应用程序不会提示我登录,似乎记得我的会话。
也许我的描述令人困惑,请想象以下场景
我打开Internet Explorer并输入要访问该应用程序的URL。 (请注意这是第一个浏览器)
浏览器会要求我输入正确的用户名和密码才能登录。
我可以访问该应用程序。
我打开另一个Internet Explorer,此浏览器不适用于该应用程序,它用于其他目的。 (第二个浏览器)
此时,我总共打开了两个Internet Explorer浏览器。
假设我在应用程序中完成了任务,我点击了注销按钮,它会提示“你想退出这个应用程序吗?”,我点击“是”。
浏览器关闭应用程序。(请注意我关闭了第一个浏览器)
第二个浏览器仍处于打开状态。
此时,只打开一个Internet Explorer浏览器。
突然我在应用程序中还有另外一项任务,所以我再次打开Internet Explorer并输入网址。
但是这次,浏览器不需要我登录,它会直接打开应用程序。
浏览器似乎记得我的登录信息,因为它无需登录即可打开应用程序。
据我所知,当我关闭浏览器时,它不会记住任何信息。因此我不明白为什么会发生这种情况,因为我使用window.close来关闭浏览器。
我希望当我在浏览器中注销或关闭应用程序时,如果我需要访问该应用程序,它会提示我登录。
因此,如果打开多个Internet Explorer,如何在用户注销应用程序后提示用户再次登录?
我的退出按钮出错了吗?
请感谢您的建议。非常感谢你。
答案 0 :(得分:0)
您的&#34;退出&#34;按钮实际上不会将用户注销 - 它只是关闭窗口。
您需要通过向服务器发送?logout
命令(假设您使用基于会话的身份验证)来进行正确的注销。您还应该考虑通过清除sessionScope变量来确保正确终止XPage会话。