示例#1
0
        public async Task <bool> UpdateAuthorization()
        {
            if (!_authorizationModified)
            {
                return(false);
            }
            const string AuthorizationHeader = "Authorization";

            if (Client.DefaultRequestHeaders.Contains(AuthorizationHeader))
            {
                Client.DefaultRequestHeaders.Remove(AuthorizationHeader);
            }

            switch (_authorizationType)
            {
            default:
                _authorizationModified = false;
                return(false);

            case AuthorizationType.Bearer:
                if (_bearerToken != null)
                {
                    var tokenValue = await _bearerToken.Token();

                    Client.DefaultRequestHeaders.Add(AuthorizationHeader, $"Bearer {tokenValue}");
                }
                _authorizationModified = false;
                return(true);

            case AuthorizationType.Basic:
                if (_basicAuthorization != null)
                {
                    Client.DefaultRequestHeaders.Add(AuthorizationHeader, $"Basic {_basicAuthorization.Token}");
                }
                _authorizationModified = false;
                return(true);
            }
        }