如果打开了多个Internet Explorer,如何在用户注销应用程序后提示用户再次登录?

时间:2016-10-18 09:55:38

标签: xpages

我有一个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,当我关闭一个浏览器并再次打开浏览器访问该应用程序时。 该应用程序不会提示我登录,似乎记得我的会话。

也许我的描述令人困惑,请想象以下场景

  1. 我打开Internet Explorer并输入要访问该应用程序的URL。 (请注意这是第一个浏览器)

  2. 浏览器会要求我输入正确的用户名和密码才能登录。

  3. 我可以访问该应用程序。

  4. 我打开另一个Internet Explorer,此浏览器不适用于该应用程序,它用于其他目的。 (第二个浏览器)

  5. 此时,我总共打开了两个Internet Explorer浏览器。

  6. 假设我在应用程序中完成了任务,我点击了注销按钮,它会提示“你想退出这个应用程序吗?”,我点击“是”。

  7. 浏览器关闭应用程序。(请注意我关闭了第一个浏览器)

  8. 第二个浏览器仍处于打开状态。

  9. 此时,只打开一个Internet Explorer浏览器。

  10. 突然我在应用程序中还有另外一项任务,所以我再次打开Internet Explorer并输入网址。

  11. 但是这次,浏览器不需要我登录,它会直接打开应用程序。

  12. 浏览器似乎记得我的登录信息,因为它无需登录即可打开应用程序。

    据我所知,当我关闭浏览器时,它不会记住任何信息。因此我不明白为什么会发生这种情况,因为我使用window.close来关闭浏览器。

    我希望当我在浏览器中注销或关闭应用程序时,如果我需要访问该应用程序,它会提示我登录。

    因此,如果打开多个Internet Explorer,如何在用户注销应用程序后提示用户再次登录?

    我的退出按钮出错了吗?

    请感谢您的建议。非常感谢你。

1 个答案:

答案 0 :(得分:0)

您的&#34;退出&#34;按钮实际上不会将用户注销 - 它只是关闭窗口。

您需要通过向服务器发送?logout命令(假设您使用基于会话的身份验证)来进行正确的注销。您还应该考虑通过清除sessionScope变量来确保正确终止XPage会话。