Beispiel #1
0
        /// <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");
        }