コード例 #1
0
        /// <summary>
        /// Initializes the mechanism.
        /// </summary>
        /// <param name="connection">The connection.</param>
        /// <param name="credential">The credential.</param>
        /// <returns>The initial step.</returns>
        public ISaslStep Initialize(MongoConnection connection, MongoCredential credential)
        {
            var serviceName = credential.GetMechanismProperty<string>("SERVICE_NAME", "mongodb");
            var canonicalizeHostname = credential.GetMechanismProperty<bool>("CANONICALIZE_HOST_NAME", false);

            var hostname = connection.ServerInstance.Address.Host;
            if (canonicalizeHostname)
            {
                var entry = Dns.GetHostEntry(hostname);
                if (entry != null)
                {
                    hostname = entry.HostName;
                }
            }

            // TODO: provide an override to force the use of gsasl?
            if (__useGsasl)
            {
                return new GsaslGssapiImplementation(
                    serviceName,
                    hostname,
                    credential.Username,
                    credential.Evidence);
            }

            return new WindowsGssapiImplementation(
                serviceName,
                hostname,
                credential.Username,
                credential.Evidence);
        }
コード例 #2
0
        /// <summary>
        /// Initializes the mechanism.
        /// </summary>
        /// <param name="connection">The connection.</param>
        /// <param name="credential">The credential.</param>
        /// <returns>The initial step.</returns>
        public ISaslStep Initialize(MongoConnection connection, MongoCredential credential)
        {
            var serviceName          = credential.GetMechanismProperty <string>("SERVICE_NAME", "mongodb");
            var realm                = credential.GetMechanismProperty <string>("REALM", null);
            var canonicalizeHostname = credential.GetMechanismProperty <bool>("CANONICALIZE_HOST_NAME", false);

            var hostname = connection.ServerInstance.Address.Host;

            if (canonicalizeHostname)
            {
                var entry = Dns.GetHostEntry(hostname);
                if (entry != null)
                {
                    hostname = entry.HostName;
                }
            }

            // TODO: provide an override to force the use of gsasl?
            if (__useGsasl)
            {
                return(new GsaslGssapiImplementation(
                           serviceName,
                           hostname,
                           realm,
                           credential.Username,
                           credential.Evidence));
            }

            return(new WindowsGssapiImplementation(
                       serviceName,
                       hostname,
                       realm,
                       credential.Username,
                       credential.Evidence));
        }
コード例 #3
0
        /// <summary>
        /// Initializes the mechanism.
        /// </summary>
        /// <param name="connection">The connection.</param>
        /// <param name="credential">The credential.</param>
        /// <returns>The initial step.</returns>
        public ISaslStep Initialize(MongoConnection connection, MongoCredential credential)
        {
            var serviceName = credential.GetMechanismProperty<string>("SERVICE_NAME", "mongodb");

            // TODO: provide an override to force the use of gsasl?
            if (__useGsasl)
            {
                return new GsaslGssapiImplementation(
                    serviceName,
                    connection.ServerInstance.Address.Host,
                    credential.Username,
                    credential.Evidence);
            }

            return new WindowsGssapiImplementation(
                serviceName,
                connection.ServerInstance.Address.Host,
                credential.Username,
                credential.Evidence);
        }
コード例 #4
0
        /// <summary>
        /// Initializes the mechanism.
        /// </summary>
        /// <param name="connection">The connection.</param>
        /// <param name="credential">The credential.</param>
        /// <returns>The initial step.</returns>
        public ISaslStep Initialize(MongoConnection connection, MongoCredential credential)
        {
            var serviceName = credential.GetMechanismProperty <string>("SERVICE_NAME", "mongodb");

            // TODO: provide an override to force the use of gsasl?
            if (__useGsasl)
            {
                return(new GsaslGssapiImplementation(
                           serviceName,
                           connection.ServerInstance.Address.Host,
                           credential.Username,
                           credential.Evidence));
            }

            return(new WindowsGssapiImplementation(
                       serviceName,
                       connection.ServerInstance.Address.Host,
                       credential.Username,
                       credential.Evidence));
        }