returnUrl和IsLocalUrl()

abe*_*nci 2 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);
   }
Run Code Online (Sandbox Code Playgroud)

谢谢.

abe*_*nci 8

问题很简单,Url.IsLocalUrl()对于像/Orders/Details/5326URL这样的URL返回true,对于URL返回falsehttp://www.company.com/Orders/Details/5326