Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 调用Url.IsLocalUrl()时,是否可以向RedirectToLocal添加本地主机异常?_Asp.net Mvc_Vb.net - Fatal编程技术网

Asp.net mvc 调用Url.IsLocalUrl()时,是否可以向RedirectToLocal添加本地主机异常?

Asp.net mvc 调用Url.IsLocalUrl()时,是否可以向RedirectToLocal添加本地主机异常?,asp.net-mvc,vb.net,Asp.net Mvc,Vb.net,VS2103,MVC5,VB 在开发时在本地主机上运行时,Url.IsLocalUrl()返回false 为Chris添加:当用户在页面上做一些事情,例如选择要购买的项目而不首先登录时,他们最终将不得不登录才能继续。当从他们所在的任何页面访问登录页面时,登录后,我们希望将用户发送回访问登录的页面。因此,添加了一个returnUrl作为参数发送到登录函数,以便它知道登录后返回到哪里。但成功登录后,登录函数将执行重定向本地(returnUrl)方法,如下所示。这是一种保护。但是在localhost环

VS2103,MVC5,VB

在开发时在本地主机上运行时,Url.IsLocalUrl()返回false

为Chris添加:当用户在页面上做一些事情,例如选择要购买的项目而不首先登录时,他们最终将不得不登录才能继续。当从他们所在的任何页面访问登录页面时,登录后,我们希望将用户发送回访问登录的页面。因此,添加了一个returnUrl作为参数发送到登录函数,以便它知道登录后返回到哪里。但成功登录后,登录函数将执行重定向本地(returnUrl)方法,如下所示。这是一种保护。但是在localhost环境中,内置Url.IsLocalUrl()似乎不喜欢localhost Url,因此我添加了如下所述的子句,以有效地“覆盖”Url.IsLocalUrl()假返回。(对不起,我之前说得太简短了)

我在If声明中添加了“或”条款,如下所示。如果returnUrl包含子字符串“localhost:”,则第二个条件变为true,将发生重定向,这是以前在开发环境中没有做到的

Public Function RedirectToLocal(returnUrl As String) As ActionResult
  If Url.IsLocalUrl(returnUrl) Or (InStr(returnUrl, "localhost:") > 0) Then
    Return Redirect(returnUrl)
  End If
  Return RedirectToAction("Index", "Home")
End Function
无论出于什么原因,这是一个坏主意,还是有更简单的方法在开发环境中获得所需的行为

谢谢

致以最良好的祝愿,
Alan

我相信IsLocalUrl正在检查是否包含任何域名。站点本地的任何内容都将以
/path
相对/path
开头(而不是
http:
https:
(或其他协议))。好的。这个问题我已经读了5遍了,但我还是不能完全理解你的问题。也许我早上的咖啡因还没有完全起作用,但请试着修改一下你的问题,让它更清楚地表明你想要达到什么目的,你正在经历什么问题。@BradChristie:没错<添加了代码>IsLocalUrl以防止打开重定向攻击。它所做的只是确保该值没有URL的协议和域部分,以便在类似于在querystring中传递的
returnUrl
参数的情况下,唯一可以重定向到的是同一站点上的某个路径。@ChrisPratt我已经在上面坐了一段时间,以确保我理解上面的评论及其含义。请确认,我上面所写的并没有破坏任何关于开放重定向攻击的保护。因为我只是在寻找“本地主机”,所以这对生产站点不会构成威胁,是吗?