当用户从站点导航时,ASP.net MVC3保存最后一个操作,当他们返回时重定向到该操作

时间:2012-05-03 07:51:46

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

基本上我所拥有的是使用Windows Live Connect进行身份验证的网站。当用户选择从主视图登录时,它们将被重定向到显然在其他位置托管的WL登录页面。一旦他们成功登录,他们就被重定向到我的网站上的SignIn操作,如果他们是第一次访问,设置会话变量等,可能会将用户添加到我的数据库中。

现在的问题是,我总是让SignIn操作将RedirectToAction返回到主主页。这可能会让用户烦恼,因为他们现在必须导航回他们需要登录才能查看的任何页面。

我的第一个想法是将以下内容添加到我保存用户当前位置的重要操作中:

Session["LastPage"] = RedirectToAction("Index", "Home");

然后在我的SignIn操作结束时,我试图包括:

if (Session["LastPage"] != null)
    return (ActionResult)Session["LastPage"];
else
    return RedirectToAction("MyPage", "User");

这实际上并不起作用,因为显然我的会话每次用户导航离开并返回到站点时都会重新启动。

我是否以正确的方式处理这个问题?如果是这样,我如何防止会话被擦除?如果我以完全错误的方式解决这个问题,那么有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

您可以使用重定向链接为实时身份验证站点提供额外的查询字符串。

只需添加此查询字符串:

<强>&安培; REDIRECT_URI = YOURURL

您可以使用 Request.UrlReferrer

获取以前的网址