会话超时注销用户

时间:2010-10-11 22:38:40

标签: c# asp.net web-config session-timeout

我希望我的应用程序注销登录用户,并在会话超时后立即将其带到Loing.aspx页面。用户应该在没有任何事件被触发的情况下注销。我尝试在身份验证模式下进行更改,但都是徒劳的......

3 个答案:

答案 0 :(得分:1)

Web窗体与Windows窗体不同,但您可能会稍微使用它。

您无法捕获Session.End事件并将用户重定向到其他位置,但您可能会使用Cookie。会话到期,Cookie的到期时间由您的代码控制。

我想到的第一件事是在登录后设置一个cookie,然后在每个页面加载检查

if (cookie is present && Session["LoggedIn"]==null)
    Response.Redirect("Login.aspx");

这是一个粗野的手写伪代码,可以帮助你提出想法。

但另一个问题是:如果您处于受保护区域且会话过期,ASP.NET,一旦您配置好身份验证,就会自动将您带到登录页面。

通过“良好配置”,我的意思是遵循在Web应用程序中创建受保护区域并使用Forms身份验证的所有标准过程:RTFM for http://www.asp.net/security/tutorials/an-overview-of-forms-authentication-vb

答案 1 :(得分:1)

如果您的表单身份验证已正确设置(Like mentioned here),并且您仍然不希望在会话超时时捕获任何事件,那么理想情况下,如果用户是InActive 20分钟(这是默认会话)除非您更改了超时时间,否则应用程序会自动将任何下一个请求重定向到Login.aspx。但请确保您遵循上述链接中给出的所有步骤(基本上是正确的身份验证和授权标记等)。

答案 2 :(得分:0)

尝试在web.config

中的<system.web>下添加以下标记

<sessionState mode="InProc" timeout="200"></sessionState>