登录后重定向返回URL

时间:2015-08-17 14:49:07

标签: .net computer-science

我正在尝试使用returnUrl,但每次都返回null,我不知道为什么......有人可以帮忙吗?

在我的控制器中..

public ActionResult Login(string invite, string username, string password, string returnUrl)
  {
     if (User.Identity.IsAuthenticated)
     {
        if (!returnUrl.IsNullOrEmpty())
        {
           var model = new LoginModel();
           model.ReturnUrl = returnUrl;
           return View(model);
        }

        return RedirectToAction("Dashboard", "Home");
     }

      Some stuff....

if (Url.IsLocalUrl(returnUrl))
               {
                  return Redirect(returnUrl);
               }
               else
               {
                  return RedirectToAction("Dashboard", "Home");
               }

在我的登录过滤器

HttpContext.Current.Response.Redirect("~/Account/Login?ReturnUrl=" + HttpUtility.UrlEncode(HttpContext.Current.Request.Url.ToString()));

1 个答案:

答案 0 :(得分:0)

假设这是MVC代码,我认为你有一个套管问题。

string returnUrl

?ReturnUrl=

不一样。 MVC将ReturnUrl与名为ReturnUrl的参数匹配,而不是returnUrl。

其他要检查的事项:

public ActionResult Login(string invite, string username, string password, string returnUrl)
  { // Set breakpoint here

在指定位置有一个断点,查看Request对象(RawUrl和QueryString属性),看看传入的URL是否具有您期望的参数,并且您没有从重定向到达此处。< / p>

可能影响您的另一件事是路径属性或配置可能会影响值的处理。