比如某用户登陆系统后 进入某个画面操作  
  过一段时间再去操作时  用户过期  需要从新登陆了  这时登陆后怎么返回到刚才操作的页面?
思路是有个 但是怎么拿到刚才操作页面的地址  返回登陆后怎么返回到这个地址? 把当前页面的URL当成URL的参数
登陆成功后再返回这个参数

解决方案 »

  1.   

    可以用referer字段,并且放入tempdata传递,这样就不用出现在url中了。
      

  2.   

    刚学习MVC   思路是有 不知道怎么弄...!
        是不是要写个基类  让每个控制器和action都继承它  它主要就是获取当前访问的地址
    然后存到某个地方? 当用户过期后登陆 把这个地址拿出来
       还有 要是在父页面弹出某个页面的话 是不是拿不到这个父页面了?只能拿到弹出页面的地址?
      

  3.   

    不需要,只要在Login动作中写就可以了。
      

  4.   

      在longin的aspx中 function login(href) {     var url = location.href;  //获取当前url地址
         var paraString = encodeURIComponent(url);
        location.href=href+"?returnUrl="+paraString;
        return false;}
    当点击登陆按钮时触发
    这样能取到么?
      

  5.   

    用Request.ServerVariables["http_referer"]可以取URL。
      

  6.   

    Request.ServerVariables 这是服务器代码?   那就是在控制器中写咯?
      还以为在js中写呢。
      

  7.   

    关键词:ReturnUrl
    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);
            }
      

  8.   

     if (Url.IsLocalUrl(returnUrl)
    这个方法是判断当前系统 是否有这个URL 么? 
        怎么实现的?
      

  9.   

    这个是Url类自带方法,这几句条件是为了防止恶意Url链接。
      

  10.   

    Request.ServerVariables["http_referer"]
    这个第一次登陆 会有login的URL