public SecurityStandardsManager(System.ServiceModel.MessageSecurityVersion messageSecurityVersion, System.IdentityModel.Selectors.SecurityTokenSerializer tokenSerializer)
 {
     if (messageSecurityVersion == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("messageSecurityVersion"));
     }
     if (tokenSerializer == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("tokenSerializer");
     }
     this.messageSecurityVersion = messageSecurityVersion;
     this.tokenSerializer        = tokenSerializer;
     if (messageSecurityVersion.SecureConversationVersion == System.ServiceModel.Security.SecureConversationVersion.WSSecureConversation13)
     {
         this.secureConversationDriver = new WSSecureConversationDec2005.DriverDec2005();
     }
     else
     {
         this.secureConversationDriver = new WSSecureConversationFeb2005.DriverFeb2005();
     }
     if ((this.SecurityVersion != System.ServiceModel.Security.SecurityVersion.WSSecurity10) && (this.SecurityVersion != System.ServiceModel.Security.SecurityVersion.WSSecurity11))
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("messageSecurityVersion", System.ServiceModel.SR.GetString("MessageSecurityVersionOutOfRange")));
     }
     this.idManager = System.ServiceModel.Security.WSSecurityJan2004.IdManager.Instance;
     this.wsUtilitySpecificationVersion = System.ServiceModel.Security.WSUtilitySpecificationVersion.Default;
     if (messageSecurityVersion.MessageSecurityTokenVersion.TrustVersion == System.ServiceModel.Security.TrustVersion.WSTrust13)
     {
         this.trustDriver = new WSTrustDec2005.DriverDec2005(this);
     }
     else
     {
         this.trustDriver = new WSTrustFeb2005.DriverFeb2005(this);
     }
 }
 public SecurityStandardsManager(System.ServiceModel.MessageSecurityVersion messageSecurityVersion, System.IdentityModel.Selectors.SecurityTokenSerializer tokenSerializer)
 {
     if (messageSecurityVersion == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("messageSecurityVersion"));
     }
     if (tokenSerializer == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("tokenSerializer");
     }
     this.messageSecurityVersion = messageSecurityVersion;
     this.tokenSerializer = tokenSerializer;
     if (messageSecurityVersion.SecureConversationVersion == System.ServiceModel.Security.SecureConversationVersion.WSSecureConversation13)
     {
         this.secureConversationDriver = new WSSecureConversationDec2005.DriverDec2005();
     }
     else
     {
         this.secureConversationDriver = new WSSecureConversationFeb2005.DriverFeb2005();
     }
     if ((this.SecurityVersion != System.ServiceModel.Security.SecurityVersion.WSSecurity10) && (this.SecurityVersion != System.ServiceModel.Security.SecurityVersion.WSSecurity11))
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("messageSecurityVersion", System.ServiceModel.SR.GetString("MessageSecurityVersionOutOfRange")));
     }
     this.idManager = System.ServiceModel.Security.WSSecurityJan2004.IdManager.Instance;
     this.wsUtilitySpecificationVersion = System.ServiceModel.Security.WSUtilitySpecificationVersion.Default;
     if (messageSecurityVersion.MessageSecurityTokenVersion.TrustVersion == System.ServiceModel.Security.TrustVersion.WSTrust13)
     {
         this.trustDriver = new WSTrustDec2005.DriverDec2005(this);
     }
     else
     {
         this.trustDriver = new WSTrustFeb2005.DriverFeb2005(this);
     }
 }
        internal bool TryGetSecurityContextIds(Message message, string[] actors, bool isStrictMode, ICollection <UniqueId> results)
        {
            if (results == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("results");
            }
            System.ServiceModel.Security.SecureConversationDriver secureConversationDriver = this.SecureConversationDriver;
            int headerIndex = this.SecurityVersion.FindIndexOfSecurityHeader(message, actors);

            if (headerIndex < 0)
            {
                return(false);
            }
            bool flag = false;

            using (XmlDictionaryReader reader = message.Headers.GetReaderAtHeader(headerIndex))
            {
                if (!reader.IsStartElement())
                {
                    return(false);
                }
                if (reader.IsEmptyElement)
                {
                    return(false);
                }
                reader.ReadStartElement();
                while (reader.IsStartElement())
                {
                    if (secureConversationDriver.IsAtSecurityContextToken(reader))
                    {
                        results.Add(secureConversationDriver.GetSecurityContextTokenId(reader));
                        flag = true;
                        if (isStrictMode)
                        {
                            return(flag);
                        }
                    }
                    else
                    {
                        reader.Skip();
                    }
                }
            }
            return(flag);
        }