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
出于任何原因,这是一个坏主意,还是有更简单的方法在开发环境中获得所需的行为?
感谢。
最诚挚的问候, 艾伦