我应该如何自动将某人从我的网站中删除?

时间:2013-05-24 17:02:03

标签: javascript c#-4.0 asp.net-mvc-4

所以我在MVC4中构建一个网站,我有一系列服务,我已经在其中构建了一个包含所有调用并自动将xml更改为指定对象的dll。因此,调用者不会接收xml,而是会收到一个CustomReturn对象,该对象具有ErrorCode,ErrorMessage,Token和Payload,其中有效负载已经被转换为List等。

现在,要对我们的后端服务进行90%的调用,需要令牌,并且在成功调用返回时,将返回新的令牌。为了管理这个令牌,它存储在一个cookie中,该cookie随每次调用一起传递,这样服务器就会处理管理令牌,而不是让浏览器javascript这样做。

所以我创建了一个属性,它位于我的控制器顶部,用于查找此cookie,解密令牌并将其存储在自定义的HttpContext.Current.User中。

最后,我的控制器功能基本上如下:

    [HttpGet]
    public T MyFunction(string venue)
    {
        var asr = Services.GetSomething(Token, venue);
        SetAuthTicket(asr.Token);
        return asr.Payload;
    }

对于长篇故事感到抱歉,但这是我的问题所在:

在我的页面上,我有一个功能,可以根据用户请求获取并显示数据,然后每30秒自动更新相同的数据。

我希望在页面中实现一个自动注销功能,用于检测用户在x时间内没有发出请求并将其记录下来...

最初我打算通过验证令牌来做到这一点,因为在x时间之后它变得无效。

但是目前自动更新会使令牌保持有效,因为它们会进行相同的调用以重置令牌......

问题

在我的网站中实施自动注销功能的最佳选择是什么?我应该创建一个不会重置令牌的呼叫的单独副本吗?或者我应该编写一些可以检测鼠标移动或点击或其他东西的javascript并以这种方式记录它们?

1 个答案:

答案 0 :(得分:0)

你的每30秒请求标志怎么样?比如添加头部或其他什么来表明请求是由javascript触发的,因此不会更新定时器/令牌?

来自用户的请求不会有此标志,并保持更新计时器/令牌

示例,将一些参数附加到您的ajax“get”请求,例如"source=js"。在服务器端,如果Request["source"] == "js"

,您可以告诉这是一个自动请求