我有一个页面在学生登录时加载,在顶部有一个标签,表示他/她已登录的最后一次...此日期存储在一个表格中
我尝试使用代码将
下的global.asax中的日期更新为今天的日期void Application_End(object sender, EventArgs e)
{
}
但似乎我不能在那里使用SQL连接
如果用户通过退出关闭网站,如何将表格中存储的日期更改为(todays.date)?
答案 0 :(得分:3)
Application_End
不适合这个。当整个应用程序而不仅仅是用户会话关闭时,会调用此方法。
最接近你想要的东西可能是Session_End
。但请注意,只有在用户会话到期后才会触发,通常在浏览器关闭后大约20分钟。
不,不幸的是,您无法可靠地检测到用户已关闭其浏览器窗口。如果您想使用JavaScript,可以使用一些可能在大多数情况下都可以使用的解决方法:
答案 1 :(得分:1)
使用Session_End
代替Application_End
Application_End
是特定于应用程序的,对于整个应用程序是常见的,并且会触发一次。
Session_End
是特定于用户的,每个用户的范围触发一次。所以正确的方法是使用这种方式..
详细了解这些活动here..
答案 2 :(得分:0)
根据您的身份验证的工作方式(Cookie,基于会话等),在用户成功登录后立即执行此操作可能会更容易。
如果您需要准确测量上次登录,那么这样做是有道理的,因为Session_End
可能会在实际使用完网站后开火一段时间。
如果您确实希望使用Session_End
,则可以始终存储用户在会话中登录的时间,然后在Session_End
事件触发时更新数据库。
答案 3 :(得分:0)
您可以使用onbeforeunload活动。
例如。
<script type="text/javascript">
window.onbeforeunload = function ()
{
//do something
}
</script>
这是示例页面,其中包含示例:onbeforeunload Event Sample