/// <inheritdoc/> public async Task <MexDocument> GetMexDocumentAsync(string federationMetadataUrl, RequestContext requestContext) { IDictionary <string, string> msalIdParams = MsalIdHelper.GetMsalIdParameters(requestContext.Logger); var uri = new UriBuilder(federationMetadataUrl); HttpResponse httpResponse = await _httpManager.SendGetAsync( uri.Uri, msalIdParams, requestContext.Logger, cancellationToken : requestContext.UserCancellationToken).ConfigureAwait(false); if (httpResponse.StatusCode != System.Net.HttpStatusCode.OK) { string message = string.Format(CultureInfo.CurrentCulture, MsalErrorMessage.HttpRequestUnsuccessful + "See https://aka.ms/msal-net-ropc for more information. ", (int)httpResponse.StatusCode, httpResponse.StatusCode); throw MsalServiceExceptionFactory.FromHttpResponse( MsalError.AccessingWsMetadataExchangeFailed, message, httpResponse); } var mexDoc = new MexDocument(httpResponse.Body); requestContext.Logger.InfoPii( $"MEX document fetched and parsed from '{federationMetadataUrl}'", "Fetched and parsed MEX"); return(mexDoc); }
/// <inheritdoc/> public async Task <MexDocument> GetMexDocumentAsync(string federationMetadataUrl, RequestContext requestContext) { var uri = new UriBuilder(federationMetadataUrl); HttpResponse httpResponse = await _httpManager.SendGetAsync(uri.Uri, null, requestContext).ConfigureAwait(false); if (httpResponse.StatusCode != System.Net.HttpStatusCode.OK) { string message = string.Format(CultureInfo.CurrentCulture, MsalErrorMessage.HttpRequestUnsuccessful, (int)httpResponse.StatusCode, httpResponse.StatusCode); throw new MsalServiceException(MsalError.AccessingWsMetadataExchangeFailed, message) { HttpResponse = httpResponse }; } var mexDoc = new MexDocument(httpResponse.Body); requestContext.Logger.InfoPii( $"MEX document fetched and parsed from '{federationMetadataUrl}'", "Fetched and parsed MEX"); return(mexDoc); }
/// <inheritdoc/> public async Task <MexDocument> GetMexDocumentAsync(string federationMetadataUrl, RequestContext requestContext) { var uri = new UriBuilder(federationMetadataUrl); HttpResponse httpResponse = await _httpManager.SendGetAsync(uri.Uri, null, requestContext).ConfigureAwait(false); if (httpResponse.StatusCode != System.Net.HttpStatusCode.OK) { throw MsalExceptionFactory.GetServiceException( CoreErrorCodes.AccessingWsMetadataExchangeFailed, string.Format(CultureInfo.CurrentCulture, CoreErrorMessages.HttpRequestUnsuccessful, (int)httpResponse.StatusCode, httpResponse.StatusCode), new ExceptionDetail() { StatusCode = (int)httpResponse.StatusCode, ServiceErrorCodes = new[] { httpResponse.StatusCode.ToString() } }); } var mexDoc = new MexDocument(httpResponse.Body); requestContext.Logger.InfoPii( $"MEX document fetched and parsed from '{federationMetadataUrl}'", "Fetched and parsed MEX"); return(mexDoc); }