在jquery ajax中强制用户注销

时间:2013-07-01 07:21:03

标签: javascript jquery asp.net ajax asp.net-mvc

我正在尝试在关闭浏览器之前强制用户从系统登录。下面是我唯一能够提出的代码。

 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
    <script type="text/javascript">

        $(window).bind('beforeunload', function () {
            return 'Please LogOut';
        });

    </script>

我想做类似下面的事情。显示确认框,如果用户按OK,则进行ajax调用。

我尝试了以下代码,但即使是确认框也没有出现。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
    <script type="text/javascript">

        $(window).bind('beforeunload', function () {
            var x;
            var r = confirm("Please LogOut");
            if (r == true) {
                x = "LogOut";
                var url = "/User/logOut/";
                  $.ajax({
                    url: url,
                    data: { UserID: 1},
                    cache: false,
                    type: "POST",
                    success: function (data) {

                    },
                    error: function (reponse) {
                        alert("error : " + reponse);
                    }
                });
            }
            else {
                x = "Stay On Page!";
            }

        });

    </script>

1 个答案:

答案 0 :(得分:1)

我们尝试了类似的功能,但您无法检测用户何时轻松关闭浏览器。

最简单的方法是将会话用作用户访问权限。这意味着在每次调用时,您的客户端应该发送一些令牌,服务器端应该检查它。此令牌保存在cookie / storage中的客户端(会话存储,但它仅在选项卡上作为会话),并且只要用户关闭窗口/选项卡,它就会过期。

当然,您的服务器端应该支持会话。对于令牌发送,我建议使用授权标头,因为它可以在大多数开发平台上使用,如果你打算从js扩展到例如Android平台将来某个时候。