Global.asax函数用于检测经过身份验证的用户首页访问

时间:2013-10-09 18:10:34

标签: c# forms-authentication session-cookies global-asax

我正在使用Global.ascx文件中的“Session_Start”功能,以便在经过身份验证的用户访问我的网站时进行保存。

如果用户会话到期,这可以正常工作,但是当我使用持久性cookie时,用户可能会在28天内返回该站点并且不会调用此函数,因此不会在用户拥有的数据库中进行记录访问。

我已经仔细研究了Global.ascx中的所有可用功能,但是我找不到能够满足我需要的功能。

Application_Start - 仅在生命周期内触发 Application_BeginRequest - 每个请求都发出 Application_AuthenticateRequest - 每个请求 Session_Start - 启动新会话时

我认为可以使用的两个事件是Application_BeginRequest或Application_AuthenticateRequest。

有没有办法限制上述事件只在首次访问网站时运行特定代码而不是每次请求?

或者有没有办法使用我的主文件?

任何建议都非常有用。

干杯

1 个答案:

答案 0 :(得分:0)

你为什么不自己实施?正如您所提到的,有一个事件Application_BeginRequest。我认为以下可能会做到这一点:

protected void Application_BeginRequest(object sender, EventArgs e)
{       
    string session_param_name = "SOME_SESSION_ID";        

    if (HttpContext.Current.Request.Form[session_param_name] == null)
    {
         //Count
    }
    else if (HttpContext.Current.Request.QueryString[session_param_name] == null)
    {
        //Also count
     }
}