protected override async Task HandleChallengeAsync(AuthenticationProperties properties) { System.Console.WriteLine(""); System.Console.WriteLine("[Saml2Handler][HandleChallengeAsync] =>"); _logger.LogDebug($"Entering {nameof(HandleChallengeAsync)}", properties); properties = properties ?? new AuthenticationProperties(); var authnRequestId = CreateUniqueId(); properties.Items.Add(AuthnRequestIdKey, authnRequestId); System.Console.WriteLine("[Saml2Handler][HandleChallengeAsync] => AuthnRequestIdKey: " + AuthnRequestIdKey); System.Console.WriteLine("[Saml2Handler][HandleChallengeAsync] => authnRequestId: " + authnRequestId); await _sessionStore.SaveAsync <AuthenticationProperties>(properties); var requestUrl = _samlService.GetAuthnRequest(authnRequestId, null, $"{Request.GetBaseUrl()}/{Options.AssertionConsumerServiceUrl}"); System.Console.WriteLine("[Saml2Handler][HandleChallengeAsync] => requestUrl: " + requestUrl); System.Console.WriteLine(""); _logger.LogDebug($"Method={nameof(HandleChallengeAsync)}. Redirecting to saml identity provider for SSO. Url={requestUrl}"); System.Console.WriteLine(""); Context.Response.Redirect(requestUrl, true); }
protected override Task HandleChallengeAsync(AuthenticationProperties properties) { _logger.LogDebug($"Entering {nameof(HandleChallengeAsync)}", properties); var authnRequestId = CreateUniqueId(); var deleteCookieOptions = Options.RequestIdCookie.Build(Context, Clock.UtcNow); Response.DeleteAllRequestIdCookies(Context.Request, deleteCookieOptions); var isPassive = false; var forceAuth = false; foreach (var item in properties.Items) { if (item.Key == "IsPassive") { isPassive = item.Value == "true"; } if (item.Key == "ForceAuth") { forceAuth = item.Value == "true"; } } var cookieOptions = Options.RequestIdCookie.Build(Context, Clock.UtcNow); Response.Cookies.Append(Options.RequestIdCookie.Name, Options.StringDataFormat.Protect(authnRequestId), cookieOptions); var relayState = Options.StateDataFormat.Protect(properties); var requestUrl = _samlService.GetAuthnRequest(authnRequestId, relayState, $"{Request.GetBaseUrl()}/{Options.AssertionConsumerServiceUrl}", isPassive, forceAuth); _logger.LogDebug( $"Method={nameof(HandleChallengeAsync)}. Redirecting to saml identity provider for SSO. Url={requestUrl}"); Context.Response.Redirect(requestUrl, true); Context.Response.StatusCode = 200; return(Task.CompletedTask); }
protected override Task HandleChallengeAsync(AuthenticationProperties properties) { _logger.LogDebug($"Entering {nameof(HandleChallengeAsync)}", properties); var authnRequestId = CreateUniqueId(); var deleteCookieOptions = Options.RequestIdCookie.Build(Context, Clock.UtcNow); Response.DeleteAllRequestIdCookies(Context.Request, deleteCookieOptions); var cookieOptions = Options.RequestIdCookie.Build(Context, Clock.UtcNow); Response.Cookies.Append(Options.RequestIdCookie.Name, Options.StringDataFormat.Protect(authnRequestId), cookieOptions); var relayState = Options.StateDataFormat.Protect(properties); var requestUrl = _samlService.GetAuthnRequest(authnRequestId, relayState, $"{Request.GetBaseUrl()}/{Options.AssertionConsumerServiceUrl}"); _logger.LogDebug( $"Method={nameof(HandleChallengeAsync)}. Redirecting to saml identity provider for SSO. Url={requestUrl}"); Context.Response.Redirect(requestUrl, true); return(Task.CompletedTask); }