protected async Task ProcessResponseAsync(HttpContext context) { if (!Response.IsError) { // success response -- track client authorization for sign-out //_logger.LogDebug("Adding client {0} to client list cookie for subject {1}", request.ClientId, request.Subject.GetSubjectId()); await _clientSession.AddClientIdAsync(Response.Request.ClientId); } await RenderAuthorizeResponseAsync(context); }
private async Task <IActionResult> ProcessSignInAsync(SignInRequestMessage signin, ClaimsPrincipal user) { if (user != null) { _logger.LogDebug("User in WS-Federation signin request: {subjectId}", user.GetSubjectId()); } else { _logger.LogDebug("No user present in WS-Federation signin request"); } // validate request var result = await _signinValidator.ValidateAsync(signin, user); if (result.IsError) { throw new Exception(result.Error); } if (result.SignInRequired) { var returnUrl = Url.Action("Index"); returnUrl = returnUrl.AddQueryString(Request.QueryString.Value); var loginUrl = _options.UserInteraction.LoginUrl; var url = loginUrl.AddQueryString(_options.UserInteraction.LoginReturnUrlParameter, returnUrl); return(Redirect(url)); } else { // create protocol response var responseMessage = await _generator.GenerateResponseAsync(result); await _clientSessionService.AddClientIdAsync(result.Client.ClientId); return(new SignInResult(responseMessage)); } }