/// <summary> /// Send an authentication request to the IDP. /// </summary> /// <param name="context">The context.</param> private void SendRequest(HttpContext context) { // See if the "ReturnUrl" - parameter is set. var returnUrl = context.Request.QueryString["ReturnUrl"]; if (!string.IsNullOrEmpty(returnUrl)) { StateService.Set("RedirectUrl", returnUrl); } var idp = RetrieveIDP(context); if (idp == null) { // Display a page to the user where she can pick the IDP Logger.DebugFormat(TraceMessages.IdentityProviderRedirect); var page = new SelectSaml20IDP(); page.ProcessRequest(context); return; } var authnRequest = Saml20AuthnRequest.GetDefault(); TransferClient(idp, authnRequest, context); }
/// <summary> /// Send an authentication request to the IDP. /// </summary> /// <param name="context">The context.</param> private void SendRequest(HttpContext context, Saml2Configuration config) { // See if the "ReturnUrl" - parameter is set. var returnUrl = context.Request.QueryString["ReturnUrl"]; if (!string.IsNullOrEmpty(returnUrl) && context.Session != null) { context.Session["RedirectUrl"] = returnUrl; } var isRedirected = false; var selectionUtil = new IdpSelectionUtil(Logger); var idp = selectionUtil.RetrieveIDP(context.Request.Params, context.Request.QueryString, config, s => { context.Response.Redirect(s); isRedirected = true; }); if (isRedirected) { return; } if (idp == null) { // Display a page to the user where she can pick the IDP Logger.DebugFormat(TraceMessages.IdentityProviderRedirect); var page = new SelectSaml20IDP(); page.ProcessRequest(context); return; } var authnRequest = Saml20AuthnRequest.GetDefault(config); TransferClient(idp, authnRequest, context, config); }
/// <summary> /// Send an authentication request to the IDP. /// </summary> private void SendRequest(HttpContext context) { Trace.TraceMethodCalled(GetType(), "SendRequest()"); // See if the "ReturnUrl" - parameter is set. string returnUrl = context.Request.QueryString["ReturnUrl"]; if (!string.IsNullOrEmpty(returnUrl)) { SessionFactory.SessionContext.Current[SessionConstants.RedirectUrl] = returnUrl; } IDPEndPoint idpEndpoint = RetrieveIDP(context); if (idpEndpoint == null) { //Display a page to the user where she can pick the IDP SelectSaml20IDP page = new SelectSaml20IDP(); page.ProcessRequest(context); return; } Saml20AuthnRequest authnRequest = Saml20AuthnRequest.GetDefault(); TransferClient(idpEndpoint, authnRequest, context); }
/// <summary> /// Send an authentication request to the IDP. /// </summary> private void SendRequest(HttpContext context) { Trace.TraceMethodCalled(GetType(), "SendRequest()"); // See if the "ReturnUrl" - parameter is set. string returnUrl = context.Request.QueryString["ReturnUrl"]; // If PreventOpenRedirectAttack has been enabled ... the return URL is only set if the URL is local. if (!string.IsNullOrEmpty(returnUrl) && (!FederationConfig.GetConfig().PreventOpenRedirectAttack || IsLocalUrl(returnUrl))) { SessionStore.CurrentSession[SessionConstants.RedirectUrl] = returnUrl; } IDPEndPoint idpEndpoint = RetrieveIDP(context); if (idpEndpoint == null) { //Display a page to the user where she can pick the IDP SelectSaml20IDP page = new SelectSaml20IDP(); page.ProcessRequest(context); return; } Saml20AuthnRequest authnRequest = Saml20AuthnRequest.GetDefault(); TransferClient(idpEndpoint, authnRequest, context); }
/// <summary> /// Send an authentication request to the IDP. /// </summary> private void SendRequest(HttpContext context) { Trace.TraceMethodCalled(GetType(), "SendRequest()"); // See if the "ReturnUrl" - parameter is set. string returnUrl = context.Request.QueryString["ReturnUrl"]; if (!string.IsNullOrEmpty(returnUrl)) { context.Session["RedirectUrl"] = returnUrl; } IDPEndPoint idpEndpoint = RetrieveIDP(context); if (idpEndpoint == null) { //Display a page to the user where she can pick the IDP SelectSaml20IDP page = new SelectSaml20IDP(); page.ProcessRequest(context); return; } Saml20AuthnRequest authnRequest = Saml20AuthnRequest.GetDefault(); // VALTECH: Publish AssertionConsumerServiceURL which is missing in DK framework. Reguired by Logica idp. authnRequest.Request.AssertionConsumerServiceURL = SAML20FederationConfig.GetConfig().ServiceProvider.AssertionConsumerServiceURL ?? context.Request.Url.ToString(); TransferClient(idpEndpoint, authnRequest, context); }