我需要一些帮助,试图找出如何检查用户会话并查看他们是否仍然登录。
问题是因为我有一个静态页面,几乎使用jquery将所有内容加载到“标签”中。因此,当用户导航页面时,它实际上永远不会离开他们开始的相同页面。在他们点击更新他们的个人资料或其他信息时,尝试确定他们是否仍然登录时提示我的问题。
答案 0 :(得分:1)
我建议您采用略有不同的方法。
设计服务器端数据处理例程以返回特殊状态,例如,如果用户不再登录,则返回HTTP状态401。
然后使您的客户端AJAX例程能够处理此问题,即打开/显示您的登录屏幕,最好不会丢失尝试操作的数据/上下文。
答案 1 :(得分:1)
当用户“浏览页面”时,与服务器建立一些仲裁通信。例如,当他们点击“标签”时,尽管它不需要从服务器使用AJAX来ping服务器。
当然,实际上你会想要检查会话是否有效,因为所有用户都可以在实际按下它之前一小时盯着“更新”按钮。
你需要其他人,你会厌倦那些忙着使用你的应用程序的用户,然后发现他们无论如何都会超时,这将违背他们在其他网站上的体验。
在ASP中,您可以在Session
对象中存储一些内容,以指示用户已登录。以下是“我登录后”页面的示例: -
<%
Response.ContentType = "application/json"
If Session("LoggedOn") Then
Response.Write "{loggedOn: true}"
Else
Response.Write "{loggedOn: false}"
End If
%>
现在您可以将此页面用作ping目标。在更新之前Ping。如果注销我会建议您将更新的详细信息发布到服务器的任何位置,但不要对更新进行操作。通过重定向到页面然后操作这些详细信息,以通常的方式请求用户loggon。
答案 2 :(得分:0)
<TITLE>YourStaticPage.aspx</TITLE>
<%
Session("username")="StealthRT"
Session("email")="StealthRT@stackoverflowusers.com"
Session("userid")=1
Session("LastPageLoad")=System.DateTime.Now
%>
当您处理“更新配置文件”页面的button_click事件时,您应该能够检查这些变量是否仍存储在Session.Contents(“username”)或Session.Contents(“LastPageLoad”)等中。< / p>