我已经实现了空闲超时功能。在这里,当用户闲置 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 更改为仅您需要的视图名称