private static NameValueCollection GetStsRequestHeaders(HttpResponse response) { NameValueCollection headers = new NameValueCollection(); for (int i = 0; i < CommonHeaders.Count; i++) { headers.Add(CommonHeaders.GetKey(i), CommonHeaders.Get(i)); } string cookieString = response.Headers["Set-Cookie"]; if (String.IsNullOrEmpty(cookieString)) { return(headers); } List <string> cookies = cookieString.Split(',').ToList(); for (int i = 0; i < cookies.Count; i++) { if (cookies[i].IndexOf("expires=", StringComparison.OrdinalIgnoreCase) > 0) { cookies[i] += cookies[i + 1]; cookies.Remove(cookies[i + 1]); } } string headerCookies = String.Empty; foreach (var piece in cookies) { if (piece.Contains("username="******".ASPXAUTH=") && piece.ToLower().IndexOf("path=/stshost") > 0)) { Cookie cookie = new Cookie(); foreach (var item in piece.Trim().Split(';')) { if (item.Trim() == "HttpOnly") { cookie.HttpOnly = true; } if (item.Contains("=")) { string key = item.Split('=')[0].Trim(); string value = item.Split('=')[1].Trim(); if (key.ToLower() == "path") { cookie.Path = value; } if (key.ToLower() != "expires" && key.ToLower() != "path") { cookie.Name = key; cookie.Value = value; } } } headerCookies += String.Format("{0}={1}; ", cookie.Name, HttpCommon.UrlEncode(cookie.Value)); } } headers.Add("Cookie", headerCookies); return(headers); }