// public static methods /// <summary> /// Gets a MongoClientSettings object intialized with values from a MongoURL. /// </summary> /// <param name="url">The MongoURL.</param> /// <returns>A MongoClientSettings.</returns> public static MongoClientSettings FromUrl(MongoUrl url) { var credential = MongoCredential.FromComponents( url.AuthenticationMechanism, url.AuthenticationSource ?? url.DatabaseName, url.Username, url.Password); var clientSettings = new MongoClientSettings(); clientSettings.ApplicationName = url.ApplicationName; clientSettings.ConnectionMode = url.ConnectionMode; clientSettings.ConnectTimeout = url.ConnectTimeout; if (credential != null) { foreach (var property in url.AuthenticationMechanismProperties) { if (property.Key.Equals("CANONICALIZE_HOST_NAME", StringComparison.OrdinalIgnoreCase)) { credential = credential.WithMechanismProperty(property.Key, bool.Parse(property.Value)); } else { credential = credential.WithMechanismProperty(property.Key, property.Value); } } clientSettings.Credentials = new[] { credential }; } clientSettings.GuidRepresentation = url.GuidRepresentation; clientSettings.HeartbeatInterval = url.HeartbeatInterval; clientSettings.HeartbeatTimeout = url.HeartbeatTimeout; clientSettings.IPv6 = url.IPv6; clientSettings.MaxConnectionIdleTime = url.MaxConnectionIdleTime; clientSettings.MaxConnectionLifeTime = url.MaxConnectionLifeTime; clientSettings.MaxConnectionPoolSize = url.MaxConnectionPoolSize; clientSettings.MinConnectionPoolSize = url.MinConnectionPoolSize; clientSettings.ReadConcern = new ReadConcern(url.ReadConcernLevel); clientSettings.ReadEncoding = null; // ReadEncoding must be provided in code clientSettings.ReadPreference = (url.ReadPreference == null) ? ReadPreference.Primary : url.ReadPreference; clientSettings.ReplicaSetName = url.ReplicaSetName; clientSettings.LocalThreshold = url.LocalThreshold; clientSettings.Servers = new List <MongoServerAddress>(url.Servers); clientSettings.ServerSelectionTimeout = url.ServerSelectionTimeout; clientSettings.SocketTimeout = url.SocketTimeout; clientSettings.SslSettings = null; // SSL settings must be provided in code clientSettings.UseSsl = url.UseSsl; clientSettings.VerifySslCertificate = url.VerifySslCertificate; clientSettings.WaitQueueSize = url.ComputedWaitQueueSize; clientSettings.WaitQueueTimeout = url.WaitQueueTimeout; clientSettings.WriteConcern = url.GetWriteConcern(true); // WriteConcern is enabled by default for MongoClient clientSettings.WriteEncoding = null; // WriteEncoding must be provided in code return(clientSettings); }
/// <summary> /// Gets the credential. /// </summary> /// <returns>The credential (or null if the URL has not authentication settings).</returns> public MongoCredential GetCredential() { if (HasAuthenticationSettings) { return(MongoCredential.FromComponents( _authenticationMechanism, _authenticationSource ?? _databaseName, _username, _password)); } else { return(null); } }
/// <summary> /// Gets a MongoServerSettings object intialized with values from a MongoUrl. /// </summary> /// <param name="url">The MongoUrl.</param> /// <returns>A MongoServerSettings.</returns> public static MongoServerSettings FromUrl(MongoUrl url) { var credential = MongoCredential.FromComponents( url.AuthenticationMechanism, url.AuthenticationSource ?? url.DatabaseName, url.Username, url.Password); var serverSettings = new MongoServerSettings(); serverSettings.ConnectionMode = url.ConnectionMode; serverSettings.ConnectTimeout = url.ConnectTimeout; if (credential != null) { foreach (var property in url.AuthenticationMechanismProperties) { if (property.Key.Equals("CANONICALIZE_HOST_NAME", StringComparison.InvariantCultureIgnoreCase)) { credential = credential.WithMechanismProperty(property.Key, bool.Parse(property.Value)); } else { credential = credential.WithMechanismProperty(property.Key, property.Value); } } serverSettings.Credentials = new[] { credential }; } serverSettings.GuidRepresentation = url.GuidRepresentation; serverSettings.IPv6 = url.IPv6; serverSettings.MaxConnectionIdleTime = url.MaxConnectionIdleTime; serverSettings.MaxConnectionLifeTime = url.MaxConnectionLifeTime; serverSettings.MaxConnectionPoolSize = url.MaxConnectionPoolSize; serverSettings.MinConnectionPoolSize = url.MinConnectionPoolSize; serverSettings.ReadEncoding = null; // ReadEncoding must be provided in code serverSettings.ReadPreference = (url.ReadPreference == null) ? ReadPreference.Primary : url.ReadPreference; serverSettings.ReplicaSetName = url.ReplicaSetName; serverSettings.SecondaryAcceptableLatency = url.SecondaryAcceptableLatency; serverSettings.Servers = new List <MongoServerAddress>(url.Servers); serverSettings.SocketTimeout = url.SocketTimeout; serverSettings.SslSettings = null; // SSL settings must be provided in code serverSettings.UseSsl = url.UseSsl; serverSettings.VerifySslCertificate = url.VerifySslCertificate; serverSettings.WaitQueueSize = url.ComputedWaitQueueSize; serverSettings.WaitQueueTimeout = url.WaitQueueTimeout; serverSettings.WriteConcern = url.GetWriteConcern(false); serverSettings.WriteEncoding = null; // WriteEncoding must be provided in code return(serverSettings); }
/// <summary> /// Gets a MongoServerSettings object intialized with values from a MongoUrl. /// </summary> /// <param name="url">The MongoUrl.</param> /// <returns>A MongoServerSettings.</returns> public static MongoServerSettings FromUrl(MongoUrl url) { var credential = MongoCredential.FromComponents( url.AuthenticationMechanism, url.AuthenticationSource ?? url.DatabaseName, url.Username, url.Password); var serverSettings = new MongoServerSettings(); serverSettings.ConnectionMode = url.ConnectionMode; serverSettings.ConnectTimeout = url.ConnectTimeout; if (credential != null) { if (!string.IsNullOrEmpty(url.GssapiServiceName)) { credential = credential.WithMechanismProperty("SERVICE_NAME", url.GssapiServiceName); } serverSettings.Credentials = new[] { credential }; } serverSettings.GuidRepresentation = url.GuidRepresentation; serverSettings.IPv6 = url.IPv6; serverSettings.MaxConnectionIdleTime = url.MaxConnectionIdleTime; serverSettings.MaxConnectionLifeTime = url.MaxConnectionLifeTime; serverSettings.MaxConnectionPoolSize = url.MaxConnectionPoolSize; serverSettings.MinConnectionPoolSize = url.MinConnectionPoolSize; serverSettings.ReadEncoding = null; // ReadEncoding must be provided in code serverSettings.ReadPreference = (url.ReadPreference == null) ? ReadPreference.Primary : url.ReadPreference; serverSettings.ReplicaSetName = url.ReplicaSetName; serverSettings.SecondaryAcceptableLatency = url.SecondaryAcceptableLatency; serverSettings.Servers = new List <MongoServerAddress>(url.Servers); serverSettings.SocketTimeout = url.SocketTimeout; serverSettings.SslSettings = null; // SSL settings must be provided in code serverSettings.UseSsl = url.UseSsl; serverSettings.VerifySslCertificate = url.VerifySslCertificate; serverSettings.WaitQueueSize = url.ComputedWaitQueueSize; serverSettings.WaitQueueTimeout = url.WaitQueueTimeout; #pragma warning disable 618 serverSettings.WriteConcern = url.GetWriteConcern(MongoDefaults.SafeMode.Enabled); #pragma warning restore serverSettings.WriteEncoding = null; // WriteEncoding must be provided in code return(serverSettings); }
// public static methods /// <summary> /// Gets a MongoClientSettings object intialized with values from a connection string builder. /// </summary> /// <param name="builder">The connection string builder.</param> /// <returns>A MongoClientSettings.</returns> public static MongoClientSettings FromConnectionStringBuilder(MongoConnectionStringBuilder builder) { var credential = MongoCredential.FromComponents( builder.AuthenticationMechanism, builder.AuthenticationSource ?? builder.DatabaseName, builder.Username, builder.Password); var clientSettings = new MongoClientSettings(); clientSettings.ConnectionMode = builder.ConnectionMode; clientSettings.ConnectTimeout = builder.ConnectTimeout; if (credential != null) { if (!string.IsNullOrEmpty(builder.GssapiServiceName)) { credential = credential.WithMechanismProperty("SERVICE_NAME", builder.GssapiServiceName); } clientSettings.Credentials = new[] { credential }; } clientSettings.GuidRepresentation = builder.GuidRepresentation; clientSettings.IPv6 = builder.IPv6; clientSettings.MaxConnectionIdleTime = builder.MaxConnectionIdleTime; clientSettings.MaxConnectionLifeTime = builder.MaxConnectionLifeTime; clientSettings.MaxConnectionPoolSize = builder.MaxConnectionPoolSize; clientSettings.MinConnectionPoolSize = builder.MinConnectionPoolSize; clientSettings.ReadEncoding = null; // ReadEncoding must be provided in code clientSettings.ReadPreference = (builder.ReadPreference == null) ? ReadPreference.Primary : builder.ReadPreference.Clone(); clientSettings.ReplicaSetName = builder.ReplicaSetName; clientSettings.SecondaryAcceptableLatency = builder.SecondaryAcceptableLatency; clientSettings.Servers = new List <MongoServerAddress>(builder.Servers); clientSettings.SocketTimeout = builder.SocketTimeout; clientSettings.SslSettings = null; // SSL settings must be provided in code clientSettings.UseSsl = builder.UseSsl; clientSettings.VerifySslCertificate = builder.VerifySslCertificate; clientSettings.WaitQueueSize = builder.ComputedWaitQueueSize; clientSettings.WaitQueueTimeout = builder.WaitQueueTimeout; clientSettings.WriteConcern = builder.GetWriteConcern(true); // WriteConcern is enabled by default for MongoClient clientSettings.WriteEncoding = null; // WriteEncoding must be provided in code return(clientSettings); }
/// <summary> /// Gets a MongoServerSettings object intialized with values from a MongoConnectionStringBuilder. /// </summary> /// <param name="builder">The MongoConnectionStringBuilder.</param> /// <returns>A MongoServerSettings.</returns> public static MongoServerSettings FromConnectionStringBuilder(MongoConnectionStringBuilder builder) { var credential = MongoCredential.FromComponents( builder.AuthenticationMechanism, builder.AuthenticationSource ?? builder.DatabaseName, builder.Username, builder.Password); var serverSettings = new MongoServerSettings(); serverSettings.ConnectionMode = builder.ConnectionMode; serverSettings.ConnectTimeout = builder.ConnectTimeout; if (credential != null) { serverSettings.Credentials = new[] { credential }; } serverSettings.GuidRepresentation = builder.GuidRepresentation; serverSettings.IPv6 = builder.IPv6; serverSettings.MaxConnectionIdleTime = builder.MaxConnectionIdleTime; serverSettings.MaxConnectionLifeTime = builder.MaxConnectionLifeTime; serverSettings.MaxConnectionPoolSize = builder.MaxConnectionPoolSize; serverSettings.MinConnectionPoolSize = builder.MinConnectionPoolSize; serverSettings.ReadEncoding = null; // ReadEncoding must be provided in code serverSettings.ReadPreference = (builder.ReadPreference == null) ? ReadPreference.Primary : builder.ReadPreference.Clone(); serverSettings.ReplicaSetName = builder.ReplicaSetName; serverSettings.SecondaryAcceptableLatency = builder.SecondaryAcceptableLatency; serverSettings.Servers = new List <MongoServerAddress>(builder.Servers); serverSettings.SocketTimeout = builder.SocketTimeout; serverSettings.SslSettings = null; // SSL settings must be provided in code serverSettings.UseSsl = builder.UseSsl; serverSettings.VerifySslCertificate = builder.VerifySslCertificate; serverSettings.WaitQueueSize = builder.ComputedWaitQueueSize; serverSettings.WaitQueueTimeout = builder.WaitQueueTimeout; #pragma warning disable 618 serverSettings.WriteConcern = builder.GetWriteConcern(MongoDefaults.SafeMode.Enabled); #pragma warning restore serverSettings.WriteEncoding = null; // WriteEncoding must be provided in code return(serverSettings); }
/// <summary> /// Gets a MongoClientSettings object intialized with values from a MongoURL. /// </summary> /// <param name="url">The MongoURL.</param> /// <returns>A MongoClientSettings.</returns> public static MongoClientSettings FromUrl(MongoUrl url) { var credential = MongoCredential.FromComponents( url.AuthenticationMechanism, url.AuthenticationSource ?? url.DatabaseName, url.Username, url.Password); var clientSettings = new MongoClientSettings(); clientSettings.ConnectionMode = url.ConnectionMode; clientSettings.ConnectTimeout = url.ConnectTimeout; if (credential != null) { clientSettings.Credentials = new[] { credential }; } clientSettings.GuidRepresentation = url.GuidRepresentation; clientSettings.IPv6 = url.IPv6; clientSettings.MaxConnectionIdleTime = url.MaxConnectionIdleTime; clientSettings.MaxConnectionLifeTime = url.MaxConnectionLifeTime; clientSettings.MaxConnectionPoolSize = url.MaxConnectionPoolSize; clientSettings.MinConnectionPoolSize = url.MinConnectionPoolSize; clientSettings.ReadEncoding = null; // ReadEncoding must be provided in code clientSettings.ReadPreference = (url.ReadPreference == null) ? ReadPreference.Primary : url.ReadPreference; clientSettings.ReplicaSetName = url.ReplicaSetName; clientSettings.SecondaryAcceptableLatency = url.SecondaryAcceptableLatency; clientSettings.Servers = new List <MongoServerAddress>(url.Servers); clientSettings.SocketTimeout = url.SocketTimeout; clientSettings.SslSettings = null; // SSL settings must be provided in code clientSettings.UseSsl = url.UseSsl; clientSettings.VerifySslCertificate = url.VerifySslCertificate; clientSettings.WaitQueueSize = url.ComputedWaitQueueSize; clientSettings.WaitQueueTimeout = url.WaitQueueTimeout; clientSettings.WriteConcern = url.GetWriteConcern(true); // WriteConcern is enabled by default for MongoClient clientSettings.WriteEncoding = null; // WriteEncoding must be provided in code return(clientSettings); }