会话空闲时需要输入密码

时间:2013-08-06 15:56:59

标签: asp.net vb.net session session-timeout

在我的应用程序中,有一个用于验证用户帐户和密码的登录页面。

如果用户点击某些机密页面(如薪水,个人详细信息等),将会有一个增强功能,它将重定向到一个页面以再次输入密码。

为了避免每个机密页面的用户输入密码,我想在用户第一次点击机密页面并输入正确的密码时创建一个会话。如果空闲时间少于5分钟,即使点击其他机密页面,也不需要再次输入密码。否则,如果电脑闲置超过5分钟,它将重定向到密码页...

如何为上述方法创建会话?

在web.config中,它已经有整个应用程序的会话超时

<system.web>  
<sessionState timeout="240"></sessionState>
</system.web> 

我可以为此方法分配另一个会话状态吗? 感谢

1 个答案:

答案 0 :(得分:1)

我建议在Session值本身上存储一个时间戳,如下所示:

Session("ConfidentialPageAccess") = DateTime.Now

然后,当您想要检查Session值时,可以将存储的值与“now”减去5分钟进行比较,如下所示:

Dim dateConfidentialPageAccess = TryCast(Session("ConfidentialPageAccess"), DateTime)

If (dateConfidentialPageAccess - DateTime.Now).TotalMinutes > 5 Then
    ' Redirect to login page
End If