private async Task <IEndpointResult> ProcessSignInAsync(HttpContext context, SignInRequestMessage signin) { if (context.User.Identity.IsAuthenticated) { logger.LogDebug("User in WS-Federation signin request: {subjectId}", context.User.GetSubjectId()); } else { logger.LogDebug("No user present in WS-Federation signin request"); } // validate request var result = await signinValidator.ValidateAsync(signin, context.User); if (result.IsError) { throw new Exception(result.Error); } if (result.SignInRequired) { var wsFedRequest = context.Request.QueryString.Value; return(new WsFederationLoginPageResult(wsFedRequest)); } // create protocol response var responseMessage = await generator.GenerateResponseAsync(result); await sessionService.AddClientIdAsync(result.Client.ClientId); return(new SignInResult(responseMessage)); }
//Process the response by returning a self-submitting form private async Task ProcessResponseAsync(HttpContext context) { await _userSession.AddClientIdAsync(Response.Request.Client.ClientId); var formPost = Response.ResponseMessage.BuildFormPost(); context.Response.ContentType = "text/html"; await context.Response.WriteHtmlAsync(formPost); }
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 _userSession.AddClientIdAsync(Response.Request.ClientId); } await RenderAuthorizeResponseAsync(context); }
private async Task <IActionResult> ProcessSignInAsync(WsFederationMessage signin, ClaimsPrincipal user) { if (user != null && user.Identity.IsAuthenticated) { _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"); // remove wfresh parameter to ensure we don't trigger sign in after the user signes in var query = Request.Query.Where(q => !q.Key.Equals("wfresh", StringComparison.OrdinalIgnoreCase)); returnUrl = returnUrl.AddQueryString(QueryString.Create(query).Value); var loginUrl = Request.PathBase + _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 _userSession.AddClientIdAsync(result.Client.ClientId); return(new SignInResult(responseMessage)); } }
private async Task <IActionResult> ProcessSignInAsync(WsFederationMessage signin, ClaimsPrincipal user, HttpRequest request, IUrlHelper helper) { if (user != null && user.Identity.IsAuthenticated) { _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).ConfigureAwait(false); if (result.IsError) { return(new BadRequestObjectResult(result)); } if (result.SignInRequired) { var returnUrl = helper.Action(nameof(WsFederationController.Index)); returnUrl = AddQueryString(returnUrl, request.QueryString.Value); var loginUrl = request.PathBase + _options.UserInteraction.LoginUrl; var url = AddQueryString(loginUrl, _options.UserInteraction.LoginReturnUrlParameter, returnUrl); return(new RedirectResult(url)); } else { // create protocol response var responseMessage = await _generator.GenerateResponseAsync(result).ConfigureAwait(false); await _userSession.AddClientIdAsync(result.Client.ClientId).ConfigureAwait(false); return(new SignInResult(responseMessage)); } }
private async Task <IActionResult> ProcessSignInAsync(SignInRequestMessage signin, ClaimsPrincipal user) { if (user.Identity.IsAuthenticated) { _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 _sessionService.AddClientIdAsync(result.Client.ClientId); return(new SignInResult(responseMessage)); } }
public Task AddClientIdAsync(string clientId) { return(_inner.AddClientIdAsync(clientId)); }