private void SetCookies(HttpContext httpContext, HttpWebRequest preloadRequest, string upn, string rpsHeaders) { HttpRequest request = httpContext.Request; HttpResponse response = httpContext.Response; preloadRequest.CookieContainer = new CookieContainer(request.Cookies.Count + response.Cookies.Count + 1); foreach (object obj in request.Cookies) { string text = (string)obj; try { preloadRequest.CookieContainer.Add(PreloadSessionDataRequestCreator.GetCookieFromHttpCookie(request.Cookies[text], preloadRequest.Host)); } catch (CookieException arg) { ExTraceGlobals.CoreTracer.TraceWarning <string, CookieException>((long)this.GetHashCode(), "[PreloadSessionDataRequestCreator::SetCookies]: Could not set cookie {0}: {1}.", text, arg); } } foreach (object obj2 in response.Cookies) { string name = (string)obj2; preloadRequest.CookieContainer.Add(PreloadSessionDataRequestCreator.GetCookieFromHttpCookie(response.Cookies[name], preloadRequest.Host)); } UserContextCookie2 userContextCookie = UserContextCookie2.Create(null, Guid.NewGuid().ToString("N"), null, httpContext.Request.IsSecureConnection); if (!AuthCommon.IsFrontEnd && !string.IsNullOrWhiteSpace(rpsHeaders)) { IEnumerable <string> enumerable = from s in rpsHeaders.Split(new char[] { ' ' }) where s.StartsWith("RPSAuth=") || s.StartsWith("RPSSecAuth=") select s; foreach (string text2 in enumerable) { if (text2.StartsWith("RPSAuth=")) { preloadRequest.CookieContainer.Add(new Cookie("RPSAuth", text2.Substring(8, text2.Length - 9), "/", preloadRequest.Host)); } else if (text2.StartsWith("RPSSecAuth=")) { preloadRequest.CookieContainer.Add(new Cookie("RPSSecAuth", text2.Substring(11, text2.Length - 12), "/", preloadRequest.Host)); } } } preloadRequest.CookieContainer.Add(PreloadSessionDataRequestCreator.GetCookieFromHttpCookie(userContextCookie.HttpCookie, preloadRequest.Host)); httpContext.Response.Cookies.Set(userContextCookie.HttpCookie); }
public static void CreateAsyncRequest(HttpContext httpContext, string orgIdPuid, string upn, string rpsHeaders) { if (PreloadSessionDataRequestCreator.preloadThrottlingCache.Contains(orgIdPuid)) { return; } try { ExAssert.RetailAssert(httpContext != null, "HttpContext is null"); ExAssert.RetailAssert(orgIdPuid != null, "orgIdPuid is null"); PreloadSessionDataRequestCreator preloadSessionDataRequestCreator = new PreloadSessionDataRequestCreator(); preloadSessionDataRequestCreator.InternalCreateAsyncRequest(httpContext, orgIdPuid, upn, rpsHeaders); } catch (Exception ex) { if (!(ex is HttpException)) { ExWatson.SendReport(ex, ReportOptions.DoNotFreezeThreads, null); } } }