public static void SetReturnToSearchUrl(this HttpSessionStateBase session, string returnUrl, HttpRequestBase request) { try { ReturnToSearch search = new ReturnToSearch { Url = returnUrl, Referrer = request.Url.AbsoluteUri.Contains<char>('?') ? request.Url.AbsoluteUri.Split(new char[] { '?' })[0] : request.Url.AbsoluteUri }; if (!search.Referrer.EndsWith("/")) { search.Referrer = search.Referrer + "/"; } session["RETURN_TO_SEARCH"] = search; } catch (Exception) { session.ClearReturnToSearch(); } }
public static string GetReturnToSearchUrl(this HttpSessionStateBase session, HttpRequestBase request) { try { ReturnToSearch search = (ReturnToSearch) session["RETURN_TO_SEARCH"]; string str = request.Url.AbsoluteUri.Contains<char>('?') ? request.Url.AbsoluteUri.Split(new char[] { '?' })[0] : request.Url.AbsoluteUri; string str2 = request.UrlReferrer.AbsoluteUri.Contains<char>('?') ? request.UrlReferrer.AbsoluteUri.Split(new char[] { '?' })[0] : request.UrlReferrer.AbsoluteUri; if (!str2.EndsWith("/")) { str2 = str2 + "/"; } if (str.ToLower().Contains(search.Referrer.ToLower()) && (str2.ToLower() == search.Referrer.ToLower())) { return search.Url; } return null; } catch (Exception) { session.ClearReturnToSearch(); return null; } }