重定向至操作方法/视图



我已经实现了空闲超时功能。在这里,当用户闲置 1 分钟时,我们将用户重定向到登录页面。我们一直跟踪用户在自动注销发生时的 URL。例如,用户处于重置密码视图,如果发生自动注销,我得到的网址如下

http://localhost/XYZ.Portal/?returnUrl=%2FXYZ.Portal%2FUser%2FResetPassword

上述 URL 是使用以下代码实现

'@Url.Action("Login", "User", new { returnUrl = HttpContext.Current.Request.RawUrl })'
现在,当用户被重定向

到登录页面时再次登录时,我使用以下代码将他重定向回来,但代码似乎不起作用。我做错了什么。?

[HttpPost]
public ActionResult Login(FormCollection formCollection)
{
    if (ModelState.IsValid)
    {
        UserBE user = new UserBE();
        user.Email = formCollection["Email"];
        user.Password = formCollection["Password"];
        user = UserBL.AuthenticateUser(user);
        if (user.AuthenticUser)
        {
            if (Request.QueryString["returnUrl"] != null)
            {
                string returnUrl = Server.UrlDecode(Request.QueryString["returnUrl"]);
                Redirect(returnUrl );
            }
            else
            {
                Session["Email"] = user.Email;
                return RedirectToAction("DashBoard");
            }
        }
        else
            return View(user);
    }
    return View();
}

[HttpGet]登录操作方法:

[HttpGet]
public ActionResult Login()
{
   return View();
}
returnUrl I get as XYZ.Portal/User/ResetPassword

提前谢谢。

您需要返回RedirectResult

if (Request.QueryString["returnUrl"] != null)
{
    string returnUrl = Server.UrlDecode(Request.QueryString["returnUrl"]);
    return Redirect(returnUrl);
}

请参阅重定向结果

不工作。现在我的URL变成了localhost/XYZ。门户

在这种情况下,您可以执行以下 2 个选项中的 1 个:

1)写:

string startReturnUrl = "http://www." + your returnUrl

2)拆分您的返回网址,例如:

string viewName = returnUrl.Split('/').Last();

但我认为最好将 returnUrl 更改为仅您需要的视图名称

相关内容

最新更新