在用户会话到期时重定向到页面的最佳实践

本文关键字:最佳 重定向 用户 会话 | 更新日期: 2023-09-27 17:49:39

我已经从这个问题尝试过了。但这对我没有帮助。所有的答案似乎都不起作用。我不想检查会话是否为空,并在每个方法中重定向到其他页面。我试图在Session_end事件中重定向,但它不工作,因为它没有与之关联的HTTP上下文。

那么,什么是最佳实践?

谢谢。

在用户会话到期时重定向到页面的最佳实践

在这种情况下最好不要重定向。

假设你是一个网站的用户,你想访问http://example.net/theInterestingBit

现在让我们假设您的会话已经过期。

是你想要的,你会去/theInterestingBit,如果你的会话是活的,但否则你会去/someLoginPage"成功"?可能不会。

你想要的是去/theInterestingBit,而不是关心"会话",因为这是程序员担心的事情,而不是你。

所以不要重定向,而是使用HttpServerUtility.TransferHttpContext.RewritePath,这样用户仍然会转到/theInterestingBit,但这变成了一个登录页面或其他适当的方式来开始一个新的会话。请确保响应使用状态码403,以便将其适当地标记为错误页面,而不是"成功"响应。

在任意全局中执行此操作。或在IHttpModule的实现中,响应PostAcquireRequestState事件(因为这是在设置了适当的会话(或缺少会话)之后触发的事件)。如果您已经在那里做了一些事情,您也可以在BeginRequest的处理程序中完成它。全球。Asax更容易快速添加,但模块更容易重用或设置为应用程序的某些部分工作,而不是其他部分。