GetHeaders() public static method

public static GetHeaders ( string[]>.this headers, string name ) : string[]
headers string[]>.this
name string
return string[]
コード例 #1
0
ファイル: Response.cs プロジェクト: yuessir/pretzel
        public Response DeleteCookie(string key)
        {
            Func <string, bool> predicate = value => value.StartsWith(key + "=", StringComparison.InvariantCultureIgnoreCase);

            var deleteCookies  = new[] { Uri.EscapeDataString(key) + "=; expires=Thu, 01-Jan-1970 00:00:00 GMT" };
            var existingValues = Headers.GetHeaders("Set-Cookie");

            if (existingValues == null)
            {
                Headers["Set-Cookie"] = deleteCookies;
                return(this);
            }

            Headers["Set-Cookie"] = existingValues.Where(value => !predicate(value)).Concat(deleteCookies).ToArray();
            return(this);
        }
コード例 #2
0
ファイル: Response.cs プロジェクト: yuessir/pretzel
        public Response DeleteCookie(string key, Cookie cookie)
        {
            var domainHasValue = !string.IsNullOrEmpty(cookie.Domain);
            var pathHasValue   = !string.IsNullOrEmpty(cookie.Path);

            Func <string, bool> rejectPredicate;

            if (domainHasValue)
            {
                rejectPredicate = value =>
                                  value.StartsWith(key + "=", StringComparison.InvariantCultureIgnoreCase) &&
                                  value.IndexOf("domain=" + cookie.Domain, StringComparison.InvariantCultureIgnoreCase) != -1;
            }
            else if (pathHasValue)
            {
                rejectPredicate = value =>
                                  value.StartsWith(key + "=", StringComparison.InvariantCultureIgnoreCase) &&
                                  value.IndexOf("path=" + cookie.Path, StringComparison.InvariantCultureIgnoreCase) != -1;
            }
            else
            {
                rejectPredicate = value => value.StartsWith(key + "=", StringComparison.InvariantCultureIgnoreCase);
            }
            var existingValues = Headers.GetHeaders("Set-Cookie");

            if (existingValues != null)
            {
                Headers["Set-Cookie"] = existingValues.Where(value => !rejectPredicate(value)).ToArray();
            }

            return(SetCookie(key, new Cookie
            {
                Path = cookie.Path,
                Domain = cookie.Domain,
                Expires = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc),
            }));
        }