protected virtual Redirect FindMapping(string itemId) { Redirect redirectMapping = null; List <Redirect> .Enumerator enumerator = this.MappingsMap.GetEnumerator(); try { while (enumerator.MoveNext()) { Redirect current = enumerator.Current; if (itemId == current.TargetItemId) { redirectMapping = current; return(redirectMapping); } } } finally { ((IDisposable)enumerator).Dispose(); } return(redirectMapping); }
public override void ProcessRequest(HttpRequestArgs args) { //Check https & www is enabled and apply var siteLevel = SiteLevelConfigMapping; if (siteLevel != null) { var current = HttpContext.Current; if (current != null && siteLevel.RedirectToHttpsAlways) { if (!current.Request.IsSecureConnection) { var url = current.Request.Url.AbsoluteUri; if (url.StartsWith("http:")) { url = url = "https" + url.Remove(0, 4); this.Redirect301(current.Response, url); } } } if (siteLevel.AddWwwPrefix) { var url = current.Request.Url.AbsoluteUri; var urlVal = url.Substring(url.IndexOf("//") + 2); if (!urlVal.StartsWith("www.")) { url = (url.Substring(0, url.IndexOf("//") + 2)) + "www." + urlVal; this.Redirect301(current.Response, url); } } } string itemId = Context.Item.ID.ToString(); Redirect resolvedMapping = this.GetResolvedMapping(itemId); bool flag = resolvedMapping != null; if (resolvedMapping == null) { resolvedMapping = this.FindMapping(itemId); } if (resolvedMapping != null && !flag) { var dictionaryitem = GetCache <Dictionary <string, Redirect> >(ResolvedRedirectPrefix) ?? new Dictionary <string, Redirect>(); dictionaryitem[itemId] = resolvedMapping; SetCache(ResolvedRedirectPrefix, dictionaryitem); } if (resolvedMapping != null && HttpContext.Current != null) { if (!resolvedMapping.RedirectUrl.IsNullOrEmpty()) { HttpContext.Current.Response.Redirect(resolvedMapping.RedirectUrl, true); args.AbortPipeline(); } } }