在mvc/Controller中获取本地URL时无法识别本地URL
本文关键字:URL 识别 mvc 获取 Controller | 更新日期: 2023-09-27 18:28:49
我正在尝试测试以下代码。这是一个总结代码。
string url = filterContext.HttpContext.Request.Url.ToString();
if (Url.IsLocalUrl(url))
{
return Redirect(url);
}
else
{
return RedirectToAction("Index", "Home");
}
在这段代码中,url是从上下文中获得的,但在我的原始代码中,它是作为Authorize过滤器中的字符串传递给控制器操作的,看起来像Debug.Write中的http://localhost:53249/Products
。然而,IF
不满意url是本地url,有人能解释我做错了什么吗。
使用以下句子解决问题
string url = filterContext.HttpContext.Request.Url.PathAndQuery;
我想您只需要检查HttpRequest.IsLocal
将returnUrl传递给Url.IsLocalUrl(),而不是当前请求Url上下文。您将无效url传递到url.IsLocalUrl().