在调用Url.IsLocalUrl()时,是否可以向RedirectToLocal添加localhost异常?

时间:2014-12-03 16:49:17

标签: asp.net-mvc vb.net

VS2103,MVC5,VB

在开发时在Localhost上运行时,Url.IsLocalUrl()返回false。

为Chris添加:当用户在页面上执行某些操作(例如选择要购买的项目而不先登录)时,他们最终必须登录才能继续。当从他们所在的任何页面访问登录页面时,在登录后我们希望将用户发送回访问登录的页面。因此,returnUrl被添加为要发送到Login Function的参数,因此它知道登录后返回的位置。但是在成功登录后,Login Function执行RedirectToLocal(returnUrl)方法,如下所示。这是一种保护。但是在localhost环境中,内置的Url.IsLocalUrl()似乎并不像localhost Url那样,所以我添加了如下所述的条款,以有效地覆盖' Url.IsLocalUrl()返回false。 (对不起,我以前太简短了)

我添加了'或者' If语句的子句如下。如果returnUrl包含子字符串' localhost:',则第二个条件成立并且将发生重定向,这在开发环境中之前没有做过。

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

出于任何原因,这是一个坏主意,还是有更简单的方法在开发环境中获得所需的行为?

感谢。

最诚挚的问候, 艾伦

0 个答案:

没有答案