/// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="transport">
        /// an AdtsLdapSslTlsSecurityLayer object that provides the security layer.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// thrown when security is null.
        /// </exception>
        public AdtsLdapSecurityStream(AdtsLdapSslTlsSecurityLayer security)
        {
            if (security == null)
            {
                throw new ArgumentNullException("security");
            }

            this.security = security;
            this.receivedBuffer = new AdtsLdapSecurityBuffer();
            this.sentBuffer = new AdtsLdapSecurityBuffer();
            this.receivedEvent = new ManualResetEvent(false);
            this.lockObjectForReadWriteThread = new object();
            this.lockObjectForReadThreads = new object();
        }
Exemple #2
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="transport">
        /// an AdtsLdapSslTlsSecurityLayer object that provides the security layer.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// thrown when security is null.
        /// </exception>
        public AdtsLdapSecurityStream(AdtsLdapSslTlsSecurityLayer security)
        {
            if (security == null)
            {
                throw new ArgumentNullException("security");
            }

            this.security       = security;
            this.receivedBuffer = new AdtsLdapSecurityBuffer();
            this.sentBuffer     = new AdtsLdapSecurityBuffer();
            this.receivedEvent  = new ManualResetEvent(false);
            this.lockObjectForReadWriteThread = new object();
            this.lockObjectForReadThreads     = new object();
        }
Exemple #3
0
        /// <summary>
        /// server authenticate over SSL/TLS with client.
        /// </summary>
        /// <param name="context">
        /// an AdtsLdapContext object that indicates the context of LDAP.
        /// </param>
        /// <param name="certificate">
        /// a X509Certificate that specifies the certificate used to authenticate the server.
        /// </param>
        /// <param name="enableMessageSecurity">
        /// a bool value that indicates whether enable message security.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// thrown when context is null.
        /// </exception>
        /// <exception cref="ArgumentNullException">
        /// thrown when certificate is null.
        /// </exception>
        public void SslAuthenticate(
            AdtsLdapContext context, X509Certificate certificate, bool enableMessageSecurity)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            if (certificate == null)
            {
                throw new ArgumentNullException("certificate");
            }

            this.SslStartup(context);

            AdtsLdapSslTlsSecurityLayer sslSecurity = context.Security as AdtsLdapSslTlsSecurityLayer;

            context.UsingMessageSecurity = enableMessageSecurity;

            sslSecurity.AuthenticateAsServer(certificate);
        }