public AuthenticationResult Authenticate(IRequest request)
        {
            DigestAuthRequestParameters credentials;

            if (DigestAuthRequestParameters.TryParse(request.Headers["Authorization"], out credentials))
            {
                return(_digestAuthenticator.Authenticate(credentials));
            }

            return(new AuthenticationResult.MalformedCredentials());
        }
        public static bool TryParse(string value, out DigestAuthRequestParameters credentials)
        {
            credentials = null;

            if (string.IsNullOrWhiteSpace(value))
            {
                return(false);
            }

            if (!value.ToUpper().StartsWith(SchemeNameWithSpace))
            {
                return(false);
            }

            var basicBase64Credentials = value.Split(' ')[1];

            credentials = ExtractBasicCredentials(basicBase64Credentials);

            return(true);
        }
        public static bool TryParse(string value, out DigestAuthRequestParameters credentials)
        {
            credentials = null;

            if (string.IsNullOrWhiteSpace(value))
            {
                return false;
            }

            if (!value.ToUpper().StartsWith(SchemeNameWithSpace))
            {
                return false;
            }

            var basicBase64Credentials = value.Split(' ')[1];

            credentials = ExtractDigestCredentials(basicBase64Credentials);

            return true;
        }