特殊字符" /"作为寄回地址

时间:2014-02-04 15:49:28

标签: c# asp.net-mvc

当返回网址为:

时,此代码位于Controller的ActionResult函数中
RedirectToLocal("/");

“/”是什么意思? 找不到RedirectToLocal的任何文档。

修改1

好的,在同一个项目中找到了RedirectToLocal的定义,所以它不像我想的那样是内置函数:

    private ActionResult RedirectToLocal(string returnUrl)
    {
        if (Url.IsLocalUrl(returnUrl))
        {
            return Redirect(returnUrl);
        }
        else
        {
            //If no returnURL is stored
            return RedirectToAction("Index", "Home");
        }
    }

2 个答案:

答案 0 :(得分:1)

RedirectToLocal方法是一种帮助方法,可确保重定向的URL确实是本地地址。它可以帮助您保护您的网站免受跨网站脚本攻击,其中用户输入的网址可能会转到某个有害网站。

重定向到/会将您带到该网站的默认页面。这绝对是一个本地网址,因此RedirectToLocal("/")Redirect("/")相同。

答案 1 :(得分:0)

RedirectToLocal方法是在AccountController的默认MVC模板中创建的。这是一个由模板构建的方法,默认情况下 是该控制器的本地方法。然后通常将其复制到基本控制器中以供其他控制器使用。

AccountController中的目的是允许您在身份验证后重定向到相对URL(即返回到您来自的地方)。 returnUrl的值将采用/{controller}/{action}/{id}的形式。您正在查看的特定行将重定向到路由表中定义的默认控制器/操作(通常为Home/Index)。