1

我试图测试以下代码。这是一个总结代码。

string url = filterContext.HttpContext.Request.Url.ToString();
if (Url.IsLocalUrl(url))
        {
            return Redirect(url);
        }
        else
        {
            return RedirectToAction("Index", "Home");
        }

在此代码中,url 是从上下文中获取的,但在我的原始代码中,它作为来自 Authorize 过滤器的字符串传递给控制器​​操作,并且看起来像http://localhost:53249/Products在 Debug.Write 中。但是,IF不满意 url 是本地 URL 有人可以解释我做错了什么。

4

3 回答 3

2

用下面的句子解决了

string url = filterContext.HttpContext.Request.Url.PathAndQuery;
于 2013-08-24T14:36:17.050 回答
1

我想你只需要检查HttpRequest.IsLocal

于 2013-08-24T14:44:20.260 回答
0

将 returnUrl 传递给 Url.IsLocalUrl() 而不是当前请求 url 上下文。您将无效 url 传递给 Url.IsLocalUrl()。

于 2013-08-24T14:32:27.750 回答