private async Task <HttpResponseMessage> SendHttpRequestAsync(ExecuteHttpRequestMessage message) { HttpResponseMessage httpResponse = new HttpResponseMessage(); try { var authRequest = await HttpAuthRequestFactory.Create(message.HttpRequest); SetHttpMethod(authRequest.HttpRequestMessage, message.HttpRequest.Method); AddRequestHeaders(authRequest.HttpRequestMessage, message.HttpRequest.RequestHeaders, message.HttpRequest.UserAgent); AddContentHeaders(authRequest.HttpRequestMessage, message.HttpRequest.RequestHeaders); var response = await SendAsync(authRequest.HttpRequestMessage, message.HttpRequest); await HandleSignOutsAsync(message.HttpRequest.AuthenticationConfig, authRequest.AuthResponse); return(response); } catch (Exception ex) { httpResponse.StatusCode = System.Net.HttpStatusCode.InternalServerError; httpResponse.Content = new StringContent($"Exception: {ex.Message}. StackTrace: {ex.StackTrace}"); } return(httpResponse); }
private async Task HandleSignOutsAsync(HttpAuthenticationConfig authenticationConfig, AuthResponseBase authResponse) { switch (authenticationConfig.AuthenticationType) { case HttpAuthenticationType.None: break; case HttpAuthenticationType.OAuth20: await HttpAuthRequestFactory.SignOut((OAuth20AuthenticationConfig)authenticationConfig.AuthenticationOptions, (OAuth20AuthResponse)authResponse); break; default: break; } }