/// <summary>
        /// Initializes an instance of <see cref="IdentityConfiguration"/>
        /// </summary>
        public IdentityConfiguration()
        {
            SystemIdentityModelSection   section = SystemIdentityModelSection.Current;
            IdentityConfigurationElement element = (section != null) ? section.IdentityConfigurationElements.GetElement(DefaultServiceName) : null;

            LoadConfiguration(element);
        }
        /// <summary>
        /// Initializes an instance of <see cref="IdentityConfiguration"/>
        /// </summary>
        /// <param name="loadConfig">Whether or not config should be loaded.</param>
        /// <exception cref="InvalidOperationException">Thrown if loadConfig is set to true but there is no
        /// &lt;System.IdentityModel> configuration element</exception>
        public IdentityConfiguration(bool loadConfig)
        {
            if (loadConfig)
            {
                SystemIdentityModelSection section = SystemIdentityModelSection.Current;

                if (section == null)
                {
                    throw DiagnosticUtility.ThrowHelperInvalidOperation(SR.GetString(SR.ID7027));
                }

                IdentityConfigurationElement element = section.IdentityConfigurationElements.GetElement(DefaultServiceName);
                LoadConfiguration(element);
            }
            else
            {
                LoadConfiguration(null);
            }
        }
        /// <summary>
        /// Initializes an instance of <see cref="IdentityConfiguration"/>
        /// </summary>
        /// <param name="identityConfigurationName">The name of the &lt;service> element from which configuration is to be loaded.</param>
        /// <exception cref="InvalidOperationException">Thrown if there is no &lt;System.IdentityModel> configuration element</exception>
        /// <remarks>If this constructor is called then a System.IdentityModel config section with the provided name must exist.</remarks>
        public IdentityConfiguration(string identityConfigurationName)
        {
            if (identityConfigurationName == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("identityConfigurationName");
            }

            SystemIdentityModelSection section = SystemIdentityModelSection.Current;

            if (section == null)
            {
                throw DiagnosticUtility.ThrowHelperInvalidOperation(SR.GetString(SR.ID7027));
            }

            _identityConfigurationName = identityConfigurationName;
            IdentityConfigurationElement element = section.IdentityConfigurationElements.GetElement(identityConfigurationName);

            LoadConfiguration(element);
        }