internal async Task <WsTrustResponse> GetWsTrustResponseAsync( UserAuthType userAuthType, string cloudAudienceUrn, WsTrustEndpoint endpoint, IUsernameInput usernameInput) { // TODO: need to clean up the casting to UsernamePasswordInput as well as removing the PasswordToCharArray // since we're putting the strings onto the managed heap anyway. string wsTrustRequestMessage = userAuthType == UserAuthType.IntegratedAuth ? endpoint.BuildTokenRequestMessageWindowsIntegratedAuth(cloudAudienceUrn) : endpoint.BuildTokenRequestMessageUsernamePassword( cloudAudienceUrn, usernameInput.UserName, new string(((UsernamePasswordInput)usernameInput).PasswordToCharArray())); try { WsTrustResponse wsTrustResponse = await _serviceBundle.WsTrustWebRequestManager.GetWsTrustResponseAsync( endpoint, wsTrustRequestMessage, _requestContext).ConfigureAwait(false); _requestContext.Logger.Info($"Token of type '{wsTrustResponse.TokenType}' acquired from WS-Trust endpoint"); return(wsTrustResponse); } catch (Exception ex) { throw MsalExceptionFactory.GetClientException( CoreErrorCodes.ParsingWsTrustResponseFailed, ex.Message, ex); } }
public CommonNonInteractiveHandler( RequestContext requestContext, IUsernameInput usernameInput, IServiceBundle serviceBundle) { _requestContext = requestContext; _usernameInput = usernameInput; _serviceBundle = serviceBundle; }