2010-10-11 94 views
0

我希望我的应用程序注销登录的用户,并在会话超时后立即将他们带到Loing.aspx页面。应该注销用户而不触发任何事件。我试图在认证模式中进行更改,但都是徒劳的...会话超时注销用户

+0

什么是你的代码和配置的样子呢?它如何失败?没有更多的信息很难帮助。 – 2010-10-11 23:02:38

回答

1

Web窗体不像Windows窗体,但您可能会玩一下。

您无法捕捉Session.End事件并将用户重定向到其他地方,但您可能会使用cookie。会话过期,Cookie的过期由您的代码控制。

是进入我脑海的第一件事就是登录后设置cookie,然后在每个页面加载检查

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

这是一个强力手写伪代码,可以帮助你做出一个想法。

但是另一个问题会上升:如果您处于受保护区域并且会话过期,那么只要您配置了身份验证好了,ASP.NET 应自动将您带入登录页面。

通过“以及配置”我的意思是下面所有的标准程序到你的web应用程序中创建保护区,并使用Forms身份验证:RTFM为http://www.asp.net/security/tutorials/an-overview-of-forms-authentication-vb

1

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

+0

我猜这里的提问者希望用户的浏览器在服务器上的会话超时后立即进入login.aspx页面,而不是在用户下一次尝试访问另一个页面时进入该页面。 – MusiGenesis 2010-10-14 23:15:08

0

尝试<system.web>下添加以下标记在web.config中

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