diff --git a/src/Orchard/Mvc/Extensions/ControllerExtensions.cs b/src/Orchard/Mvc/Extensions/ControllerExtensions.cs index 25c374bfc..643c08296 100644 --- a/src/Orchard/Mvc/Extensions/ControllerExtensions.cs +++ b/src/Orchard/Mvc/Extensions/ControllerExtensions.cs @@ -15,7 +15,12 @@ namespace Orchard.Mvc.Extensions { } public static ActionResult RedirectLocal(this Controller controller, string redirectUrl, string defaultUrl) { - if (!string.IsNullOrWhiteSpace(redirectUrl) && controller.Url.IsLocalUrl(redirectUrl)) { + if (!string.IsNullOrWhiteSpace(redirectUrl) + && controller.Url.IsLocalUrl(redirectUrl) + && redirectUrl.StartsWith("/") + && !redirectUrl.StartsWith("//") + && !redirectUrl.StartsWith("/\\")) { + return new RedirectResult(redirectUrl); } return new RedirectResult(defaultUrl ?? "~/");