Ejemplo n.º 1
0
        public static IEnumerable<Cookie> GetCookies(string text)
        {
            var cookies = new List<Cookie>();

            if (string.IsNullOrWhiteSpace(text))
            {
                return cookies;
            }

            Cookie cookie = new Cookie();
            foreach (var phase in text.Split(';'))
            {
                WordEnumerator wordEnumerator = new WordEnumerator(phase, new[] { '=', ' ' });
                string name = null;
                string value = null;
                foreach (var word in wordEnumerator)
                {
                    if (name == null)
                    {
                        name = word;
                        wordEnumerator.RemoveSpliter('=');
                    }
                    else
                    {
                        value = word;
                    }
                }
                switch (name.ToLower())
                {
                    case "path":
                        cookie.Path = value;
                        break;
                    case "domain":
                        cookie.Domain = value;
                        break;
                    default:
                        if (value != null && value.Contains(","))
                            value = value.Split(',')[0];
                        cookie = new Cookie(name, value);
                        cookies.Add(cookie);
                        break;

                }
            }

            return cookies;
        }