예제 #1
0
 public Cookie?Get(string name)
 {
     if (AddedCookies.TryGetValue(name, out Cookie cookie))
     {
         return(cookie);
     }
     if (RequestedCookies.TryGetValue(name, out Cookie rcookie))
     {
         return(rcookie);
     }
     return(null);
 }
예제 #2
0
        public virtual void SetRequestCookieString(string cookie)
        {
            CompleteRequestCookie = cookie ?? throw new ArgumentNullException(nameof(cookie));
            AddedCookies.Clear();
            var reqCookie = new Dictionary <string, Cookie>();

            if (CompleteRequestCookie != "")
            {
                var tiles = CompleteRequestCookie.Split('&', ';');
                foreach (var tile in tiles)
                {
                    var ind = tile.IndexOf('=');
                    if (ind == -1)
                    {
                        var key = WebServerUtils.DecodeUri(tile.Trim());
                        if (!reqCookie.ContainsKey(key))
                        {
                            reqCookie.Add(key, new Cookie(key, ""));
                        }
                    }
                    else
                    {
                        var key   = WebServerUtils.DecodeUri(tile.Remove(ind).Trim());
                        var value = ind + 1 == tile.Length ? "" : WebServerUtils.DecodeUri(tile[(ind + 1)..]);