/// <summary> Instantiates a new configuration.</summary>
        internal SecurityConfiguration(SecurityConfigurationElement settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException("settings");
            }

            this._settings = settings;
        }
        /// <summary>
        /// Load security configuration instance
        /// </summary>
        /// <param name="securityConfig"></param>
        /// <returns></returns>
        internal static ISecurityConfiguration LoadSecurityConfiguration(SecurityConfigurationElement securityConfig)
        {
            Debug.Assert(securityConfig != null);

            // Custom configuration
            if (!string.IsNullOrEmpty(securityConfig.Type)) {
                return ObjectBuilder.Build<ISecurityConfiguration>(securityConfig.Type);
            }

            // Default
            return new SecurityConfiguration(securityConfig);
        }