public static GetReferer ( System.Web.HttpRequestBase request ) : string | ||
request | System.Web.HttpRequestBase | |
return | string |
public static string GetReferer(HttpRequestBase request)
{
string referer = request.ServerVariables["HTTP_REFERER"];
if (referer != null)
{
// Strip away host name in front, if local redirect
string hostUrl = SiteDefinition.Current.SiteUrl.ToString();
if (referer.StartsWith(hostUrl))
referer = referer.Remove(0, hostUrl.Length);
}
else
referer = ""; // Can't have null
return referer;
}
public override void OnActionExecuting(ActionExecutingContext filterContext) { if (PageEditing.PageIsInEditMode) { return; } Logger.Debug("Starting 404 handler action filter"); var request = filterContext.HttpContext.Request; filterContext.HttpContext.Response.TrySkipIisCustomErrors = true; var statusCode = NotFoundPageUtil.GetStatusCode(request); filterContext.HttpContext.Response.StatusCode = statusCode; var status = NotFoundPageUtil.GetStatus(statusCode); if (!string.IsNullOrEmpty(status)) { filterContext.HttpContext.Response.Status = status; } NotFoundPageUtil.SetCurrentLanguage(filterContext.HttpContext); filterContext.Controller.ViewBag.Referrer = NotFoundPageUtil.GetReferer(request); filterContext.Controller.ViewBag.NotFoundUrl = NotFoundPageUtil.GetUrlNotFound(request); filterContext.Controller.ViewBag.StatusCode = statusCode; }