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(); } } }
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); } }