public static RequestCookieCollection Parse(IList <string> values) { if (values.Count == 0) { return(Empty); } IList <CookieHeaderValue> cookies; if (CookieHeaderValue.TryParseList(values, out cookies)) { if (cookies.Count == 0) { return(Empty); } var store = new Dictionary <string, string>(cookies.Count); for (var i = 0; i < cookies.Count; i++) { var cookie = cookies[i]; var name = Uri.UnescapeDataString(cookie.Name.Value); var value = Uri.UnescapeDataString(cookie.Value.Value); store[name] = value; } return(new RequestCookieCollection(store)); } return(Empty); }
internal static RequestCookieCollection ParseInternal(IList <string> values, bool enableCookieNameEncoding) { if (values.Count == 0) { return(Empty); } if (CookieHeaderValue.TryParseList(values, out var cookies)) { if (cookies.Count == 0) { return(Empty); } var collection = new RequestCookieCollection(cookies.Count); var store = collection.Store !; for (var i = 0; i < cookies.Count; i++) { var cookie = cookies[i]; var name = enableCookieNameEncoding ? Uri.UnescapeDataString(cookie.Name.Value) : cookie.Name.Value; var value = Uri.UnescapeDataString(cookie.Value.Value); store[name] = value; } return(collection); } return(Empty); }
public void CookieHeaderValue_TryParseList_ExcludesInvalidValues(IList <CookieHeaderValue> cookies, string[] input) { var result = CookieHeaderValue.TryParseList(input, out var results); Assert.Equal(cookies, results); Assert.Equal(cookies?.Count > 0, result); }
public void CookieHeaderValue_TryParseList_AcceptsValidValues(IList <CookieHeaderValue> cookies, string[] input) { var result = CookieHeaderValue.TryParseList(input, out var results); Assert.True(result); Assert.Equal(cookies, results); }
public static bool TryGetSetCookeToken(this HttpResponse response, out string token) { if (response.Headers.TryGetValue("Set-Cookie", out var cookieHeader) && CookieHeaderValue.TryParseList(cookieHeader, out var cookies)) { var tokenCookie = cookies.SingleOrDefault(x => x.Name.Equals("TOKEN", StringComparison.OrdinalIgnoreCase)); token = tokenCookie?.Value.ToString(); } else { token = default; } return(token != default); }
public void Reparse(IList <string> values) { _dictionary.Clear(); IList <CookieHeaderValue> cookies; if (CookieHeaderValue.TryParseList(values, out cookies)) { foreach (var cookie in cookies) { var name = Uri.UnescapeDataString(cookie.Name.Replace('+', ' ')); var value = Uri.UnescapeDataString(cookie.Value.Replace('+', ' ')); _dictionary[name] = value; } } }