基本上我所拥有的是一个使用 Windows Live Connect 进行身份验证的站点。当用户选择从主视图登录时,他们会被重定向到显然托管在其他地方的 WL 登录页面。一旦他们成功登录,他们就会被重定向到我网站上的 SignIn 操作,如果这是他们第一次访问,可能会将用户添加到我的数据库中,设置会话变量等。
不过现在的问题是,我总是让 SignIn 操作将 RedirectToAction 返回到主页。这对用户来说可能很烦人,因为他们现在必须导航回他们需要登录才能查看的任何页面。
我的第一个想法是在我的重要操作中添加以下内容以保存用户的当前位置:
Session["LastPage"] = RedirectToAction("Index", "Home");
然后在我的登录操作结束时,我尝试包括:
if (Session["LastPage"] != null)
return (ActionResult)Session["LastPage"];
else
return RedirectToAction("MyPage", "User");
但这实际上不起作用,因为显然每次用户离开和返回该站点时,我的会话都会重新启动。
我是否以正确的方式处理这个问题?如果是这样,我如何防止会话被擦除?如果我以完全错误的方式进行此操作,那么有人可以指出我正确的方向吗?