登录后如何将用户重定向到上一页(会话已过期)?

时间:2009-05-11 05:08:30

标签: asp.net asp.net-mvc session

我正在维护用户登录的会话。

考虑一个场景,用户使用他的帐户凭据在第20页上工作。 他在会话变量超时时闲置。然后他开始在第20页上工作并点击page21的链接。这里的会话已经过期,所以他将重定向到登录页面。

成功登录后,用户应重定向到第21页。

那我该如何实现呢?

6 个答案:

答案 0 :(得分:2)

首先想到的方法是通过get / post-variable发送信息。当您在第21页(我假设)执行会话检查并将用户重定向到登录页面时,您可以将页面名称附加到地址,即重定向到类似www.xyz.com/login.htm?page21(或者如果你不希望页面名称可见,而是使用post)。然后,当用户再次登录时,只需使用该信息将他/她重定向到第21页。

希望有所帮助。

答案 1 :(得分:2)

如果您正在使用表单身份验证,则有一个内置机制来执行此操作,就在这里。它会自动将用户重定向到URL Referrer页面

If (FrameworkManager.Authenticate(username, pwd)) Then        
   System.Web.Security.FormsAuthentication.RedirectFromLoginPage(username, rememberme)
end if

答案 2 :(得分:1)

真的取决于你如何使用你的会话。如果您保留用户在会话中的1-20屏幕上输入的所有信息,那么一旦会话到期,您将失去所有信息,所以无论如何您都不幸。

如果您要将每个页面中的所有内容存储在数据库或其他某种机制中,那么应该很容易分辨出用户输入的最后一条信息。或者,您也可以存储用户在数据库中提交的最后一页的URL或名称。

当他们登录时,确定他们应该在哪个页面上,然后只需重定向他们。

答案 3 :(得分:0)

如果您正在执行Server.Transfer到登录页面而不是Request.Urlreferrer将是Page21的URL。

答案 4 :(得分:0)

你会把这段代码放在哪里?

if(FrameworkManager.Authenticate(username,pwd))然后
   System.Web.Security.FormsAuthentication.RedirectFromLoginPage(username,rememberme) 结束如果

答案 5 :(得分:-1)

如果用户想要通过其他浏览器再次登录,那么在这种情况下,您必须在数据库中添加状态列并检查状态是否为true 然后你必须在最后访问过的页面上重定向这个用户。所以通过cookie保存访问过的页面并获取页面名称并重定向页面。

相关问题