Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            try
            {
                ParseArguments(args);

                SAMLController.Initialize();

                XmlElement xmlElement = GetSAMLMessage();
                SAMLIdentifiers.MessageType messageType = SAML.GetSAMLMessageType(xmlElement);
                Console.WriteLine("The SAML message type is: {0}", messageType);

                switch (messageType)
                {
                case SAMLIdentifiers.MessageType.AuthnRequest:
                    ReceiveAuthnRequest(xmlElement);
                    break;

                case SAMLIdentifiers.MessageType.SAMLResponse:
                    ReceiveSAMLResponse(xmlElement);
                    break;

                case SAMLIdentifiers.MessageType.LogoutRequest:
                    ReceiveLogoutMessage(xmlElement, messageType);
                    break;

                case SAMLIdentifiers.MessageType.LogoutResponse:
                    ReceiveLogoutMessage(xmlElement, messageType);
                    break;
                }
            }

            catch (Exception exception)
            {
                Console.Error.WriteLine(exception.ToString());

                if (exception is ArgumentException)
                {
                    ShowUsage();
                }
            }
        }
Ejemplo n.º 2
0
        private static void ReceiveLogoutMessage(XmlElement xmlElement, SAMLIdentifiers.MessageType messageType)
        {
            string issuername = null;

            switch (messageType)
            {
            case SAMLIdentifiers.MessageType.LogoutRequest:
                issuername = LogoutRequest.GetIssuerName(xmlElement);
                break;

            case SAMLIdentifiers.MessageType.LogoutResponse:
                issuername = LogoutResponse.GetIssuerName(xmlElement);
                break;
            }

            if (IsMessageFromIdentityProvider(issuername))
            {
                ReceiveLogoutMessageFromIdentityProvider(xmlElement);
            }
            else
            {
                ReceiveLogoutMessageFromServiceProvider(xmlElement);
            }
        }