returnUrl和IsLocalUrl()

时间:2014-08-27 08:10:31

标签: asp.net asp.net-mvc

我将returnUrl = Request.Url传递给控制器​​操作,问题是当我在重定向之前使用以下代码检查它时,由于IsLocalUrl()调用它失败了。为什么呢?

if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
    && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
   {
      return Redirect(returnUrl);
   }

感谢。

1 个答案:

答案 0 :(得分:7)

问题很简单,Url.IsLocalUrl()对于/Orders/Details/5326等网址返回true,对http://www.company.com/Orders/Details/5326等网址返回false