コード例 #1
0
        public void SendPostBindingLogoutRequest(HttpContext context)
        {
            LogoutRequest logoutRequest = new LogoutRequest
            {
                DestinationUrl = new Uri(ssoAgentConfig.Saml2.IdPURL),
                Issuer         = new EntityId(ssoAgentConfig.Saml2.SPEntityId)
            };

            string logoutRequestStr = null;

            if (ssoAgentConfig.Saml2.IsRequestSigned)
            {
                X509Certificate2 cert = LoadX509Certificate();

                // Embed signature element.
                logoutRequestStr = EmbedSignatureIntoAuthnRequest(logoutRequest.BuildRequest(), logoutRequest.Id.Value, cert);
            }
            else
            {
                logoutRequestStr = logoutRequest.BuildRequest().ToString();
            }

            WritePostDataToOutputStream(context.Response, PerformBase64Encoding(logoutRequestStr));
        }
コード例 #2
0
        public string BuildRedirectBindingLogoutRequest()
        {
            LogoutRequest logoutRequest = new LogoutRequest
            {
                DestinationUrl = new Uri(ssoAgentConfig.Saml2.IdPURL),
                Issuer         = new EntityId(ssoAgentConfig.Saml2.SPEntityId)
            };

            string samlRequestString = "SAMLRequest=" + EncodeSamlRequest(logoutRequest.BuildRequest().ToString());

            if (ssoAgentConfig.Saml2.IsRequestSigned)
            {
                X509Certificate2 cert      = LoadX509Certificate();
                string           signedReq = DoSignRedirectRequest(samlRequestString, cert);

                return(string.Concat(ssoAgentConfig.Saml2.IdPURL, "?", signedReq));
            }
            else
            {
                return(string.Concat(ssoAgentConfig.Saml2.IdPURL, "?", samlRequestString));
            }
        }