比如某用户登陆系统后 进入某个画面操作
过一段时间再去操作时 用户过期 需要从新登陆了 这时登陆后怎么返回到刚才操作的页面?
思路是有个 但是怎么拿到刚才操作页面的地址 返回登陆后怎么返回到这个地址? 把当前页面的URL当成URL的参数
登陆成功后再返回这个参数
过一段时间再去操作时 用户过期 需要从新登陆了 这时登陆后怎么返回到刚才操作的页面?
思路是有个 但是怎么拿到刚才操作页面的地址 返回登陆后怎么返回到这个地址? 把当前页面的URL当成URL的参数
登陆成功后再返回这个参数
是不是要写个基类 让每个控制器和action都继承它 它主要就是获取当前访问的地址
然后存到某个地方? 当用户过期后登陆 把这个地址拿出来
还有 要是在父页面弹出某个页面的话 是不是拿不到这个父页面了?只能拿到弹出页面的地址?
var paraString = encodeURIComponent(url);
location.href=href+"?returnUrl="+paraString;
return false;}
当点击登陆按钮时触发
这样能取到么?
还以为在js中写呢。
View:Logon.cshtml
@using (Html.BeginForm("LogOn", "Account", new { ReturnUrl = Request.QueryString["ReturnUrl"] }, FormMethod.Post))
{...
Controller中的Logon Action:
[HttpPost]
public ActionResult Logon(LogonInfo model, string returnUrl)
{
if (ModelState.IsValid)
{
string[] loginResult; if (!string.IsNullOrEmpty(model.UserID) && !string.IsNullOrEmpty(model.Password))
{
// 验证登陆
if (this.TryLogin(model.UserID, model.Password, out loginResult))
{
//model.UserName = string.Empty;
//Response.Cookies.Remove(model.UserID);
Response.Cookies.Remove(model.UserID); // 记住登陆状态
FormsAuthentication.SetAuthCookie(model.UserID, model.RememberMe); if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
}
}
return View(model);
}
这个方法是判断当前系统 是否有这个URL 么?
怎么实现的?
这个第一次登陆 会有login的URL