我有一个名为SignIn的View,它包含两个用于身份验证的部分视图。一个用于OpenID,另一个用于使用内部帐户登录我的网站。
OpenID表单的Action转到OpenIDSignIn()Action,而另一个只指向SignIn()。除了当用户点击要求他们登录[授权]等的视图的链接时,一切都很好。
我在QueryString中看到returnUrl但是这个值对当前控制器操作不可用,因为它们要么使用OpenID登录,要么正常登录,从而调用与这些视图中的任何一个相关联的ActionResult。
只是为了澄清一下,returnUrl是从FormsAuthentication中抛出的那个,并在执行RedirectFromLoginPage等时使用。
答案 0 :(得分:0)
public ActionResult SignIn(string returnUrl)
{
if(!string.IsNullOrEmpty(returnUrl))
{
if(UrlUtil.IsLocalUrl(returnUrl))
{
Session.Add("ReturnUrl", returnUrl);
}
else
{
return RedirectToAction("SignIn", "Account");
}
}
return View();
}
这似乎是一种可行的解决方法。但是我讨厌会话变量!