我已经实现了idel超时功能。在这里,当用户idel持续1分钟时,我们将用户重定向到登录页面。我们已经跟踪了自动注销发生时用户所在的url。例如,用户的处于重置密码视图,如果发生自动注销,我得到的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提前谢谢。
发布于 2015-01-05 15:14:27
你需要返回 RedirectResult
if (Request.QueryString["returnUrl"] != null)
{
string returnUrl = Server.UrlDecode(Request.QueryString["returnUrl"]);
return Redirect(returnUrl);
}请参阅RedirectResult
发布于 2015-01-05 15:33:10
不工作。现在我的URL变成了localhost/XYZ.Portal
在这种情况下,您可以执行以下两个选项中的一个:
1)写:
string startReturnUrl = "http://www." + your returnUrl或
2)像这样拆分你的returnUrl:
string viewName = returnUrl.Split('/').Last();但我认为最好将returnUrl更改为您需要的唯一视图名称
https://stackoverflow.com/questions/27774898
复制相似问题