/// <summary> /// Process Saml2 sigin Request /// </summary> /// <param name="ip"></param> /// <param name="request"></param> /// <returns></returns> private ActionResult ProcessSaml2SignIn(IdentityProvider ip, SignInRequestMessage request) { if (ip.Enabled) { var saml2ProtocolSerializer = new Saml2ProtocolSerializer(); var protocolBinding = ProtocolBindings.HttpRedirect; HttpBindingSerializer httpBindingSerializer = new HttpRedirectBindingSerializer(saml2ProtocolSerializer); var authenticationRequest = new AuthenticationRequest { Issuer = new Microsoft.IdentityModel.Tokens.Saml2.Saml2NameIdentifier(request.Realm.TrimEnd('/'), new Uri(ip.WSFederationEndpoint)), Destination = new Uri(ip.WSFederationEndpoint) }; //Provide Service provider default signin home page - hardcoded for testing purpose var messageContainer = new MessageContainer(authenticationRequest, new ProtocolEndpoint(protocolBinding, new Uri(ip.WSFederationEndpoint + "/signon.ashx"))); var httpMessage = httpBindingSerializer.Serialize(messageContainer); httpBindingSerializer.WriteHttpMessage(new HttpResponseWrapper(System.Web.HttpContext.Current.Response), httpMessage); ControllerContext.HttpContext.ApplicationInstance.CompleteRequest(); } return(View("Error")); }
/// <summary> /// Process Saml2 sigin Request /// </summary> /// <param name="ip"></param> /// <param name="request"></param> /// <returns></returns> private ActionResult ProcessSaml2SignIn(IdentityProvider ip, SignInRequestMessage request) { if (ip.Enabled) { var saml2ProtocolSerializer = new Saml2ProtocolSerializer(); var protocolBinding = ProtocolBindings.HttpRedirect; HttpBindingSerializer httpBindingSerializer = new HttpRedirectBindingSerializer(saml2ProtocolSerializer); var authenticationRequest = new AuthenticationRequest { Issuer = new Microsoft.IdentityModel.Tokens.Saml2.Saml2NameIdentifier(request.Realm.TrimEnd('/'), new Uri(ip.WSFederationEndpoint)), Destination = new Uri(ip.WSFederationEndpoint) }; //Provide Service provider default signin home page - hardcoded for testing purpose var messageContainer = new MessageContainer(authenticationRequest, new ProtocolEndpoint(protocolBinding, new Uri(ip.WSFederationEndpoint + "/signon.ashx"))); var httpMessage = httpBindingSerializer.Serialize(messageContainer); httpBindingSerializer.WriteHttpMessage(new HttpResponseWrapper(System.Web.HttpContext.Current.Response), httpMessage); ControllerContext.HttpContext.ApplicationInstance.CompleteRequest(); } return View("Error"); }