2012-03-14 58 views
0

我有一个MVC3应用程序,其中用户发送一封电子邮件,有一个链接。点击电子邮件中的链接后,用户被带到登录页面,然后登录后,第2页(第二页)。 现在,用户无法再回到登录页面来第二页后,这是(使用会话)浏览器后退按钮并关闭问题

在第二页的控制器我为它编写的代码:

Session.Add("Login",true); 

在登录页面的控制器:

if(Session["Login"]==true) 
    { 
    //redirect back to Second page 
    } 
    else{ 
    //continue 
    } 

现在的问题是,当用户来到第二页,关闭​​窗口,然后再次链接点击(在电子邮件中),他被带到到第二页,而不是登录,由于上面的代码。这不应该发生。任何方式来避免这种情况,或找到一个更好的方法来防止后退按钮的使用? 我想我可以检测浏览器的关闭事件,并清除我的会话,但它似乎不可能。请帮助!

回答

2

如果你想在电子邮件中的链接到用户系统发送到登录页面,你可以修改它,像这样:

http://domain.com/account/logon?returnurl=/somecontroller/someaction 

这样,每次用户点击电子邮件中的无论链接他已在您的网站上进行身份验证,他将被带到LogOn页面。

+0

是的,这是可能的,但有没有其他方式只涉及这两页(登录和第二)? – 2012-03-14 10:58:49

+0

点正在更改链接上的URL将需要更改别人的代码,而不是我的模块的一部分,我不认为我可以让其他人这样做! :-( – 2012-03-14 11:07:10

+0

@karank,恐怕没有修改链接就不能实现这一目标,因为如果第二页需要验证并且用户已经通过身份验证,当他点击电子邮件中的链接时,他将直接到达在第二页。 – 2012-03-14 11:59:25