protected string GetReferrerOrDefaultToAction(string actionName, string controllerName, object routeValues, ReferrerSecurity referrerSecurity = ReferrerSecurity.InternalOnly) { if (Request.UrlReferrer == null || !IsAllowedToUseReferrer(referrerSecurity)) { return Url.Action(actionName, controllerName, new RouteValueDictionary(routeValues)); } return Request.UrlReferrer.ToString(); }
protected ActionResult RedirectBackOrDefaultToRoute(object routeValues, ReferrerSecurity referrerSecurity = ReferrerSecurity.InternalOnly) { return RedirectBackOrDefaultToRoute(new RouteValueDictionary(routeValues), referrerSecurity); }
protected ActionResult RedirectBackOrDefaultToAction(string actionName, string controllerName, ReferrerSecurity referrerSecurity = ReferrerSecurity.InternalOnly) { return RedirectBackOrDefaultToAction(actionName, controllerName, (RouteValueDictionary)null, referrerSecurity); }
protected ActionResult RedirectBackOrDefaultToAction(string actionName, RouteValueDictionary routeValues, ReferrerSecurity referrerSecurity = ReferrerSecurity.InternalOnly) { return RedirectBackOrDefaultToAction(actionName, null, routeValues, referrerSecurity); }
protected string GetReferrerOrDefaultToAction(string actionName, RouteValueDictionary routeValues, ReferrerSecurity referrerSecurity = ReferrerSecurity.InternalOnly) { return GetReferrerOrDefaultToAction(actionName, null, routeValues, referrerSecurity); }
private bool IsAllowedToUseReferrer(ReferrerSecurity referrerSecurity) { if (referrerSecurity == ReferrerSecurity.InternalOrExternal) { return true; } return Request.UrlReferrer.Host == Request.Url.Host; }
protected ActionResult RedirectBackOrDefaultToRoute(string routeName, RouteValueDictionary routeValues, ReferrerSecurity referrerSecurity = ReferrerSecurity.InternalOnly) { if (Request.UrlReferrer == null || !IsAllowedToUseReferrer(referrerSecurity)) { return RedirectToRoute(routeName, routeValues); } return Redirect(Request.UrlReferrer.ToString()); }
protected ActionResult RedirectBackOrDefaultToRoute(string routeName, ReferrerSecurity referrerSecurity = ReferrerSecurity.InternalOnly) { return RedirectBackOrDefaultToRoute(routeName, (RouteValueDictionary)null, referrerSecurity); }
protected ActionResult RedirectBackOrDefaultToRoute(RouteValueDictionary routeValues, ReferrerSecurity referrerSecurity = ReferrerSecurity.InternalOnly) { return RedirectBackOrDefaultToRoute(null, routeValues, referrerSecurity); }