public void Parse_Test() { var ldapConnectionOptions = new LdapConnectionStringParser().Parse("AuthenticationType=Basic;Connectionless=true;FullyQualifiedDnsHostName=true;Password=P@ssword12;Port=1234;Server=local.net;ProtocolVersion=2;Timeout=10;UserName=User-name"); Assert.IsNotNull(ldapConnectionOptions); Assert.AreEqual(AuthType.Basic, ldapConnectionOptions.AuthenticationType); Assert.AreEqual(null, ldapConnectionOptions.Credential.Domain); Assert.AreEqual("P@ssword12", ldapConnectionOptions.Credential.Password); Assert.AreEqual("User-name", ldapConnectionOptions.Credential.UserName); Assert.AreEqual(true, ldapConnectionOptions.DirectoryIdentifier.Connectionless); Assert.AreEqual(true, ldapConnectionOptions.DirectoryIdentifier.FullyQualifiedDnsHostName); Assert.AreEqual(1234, ldapConnectionOptions.DirectoryIdentifier.Port); Assert.AreEqual(1, ldapConnectionOptions.DirectoryIdentifier.Servers.Count); Assert.AreEqual("local.net", ldapConnectionOptions.DirectoryIdentifier.Servers.First()); Assert.AreEqual(2, ldapConnectionOptions.ProtocolVersion); Assert.AreEqual(TimeSpan.FromDays(10), ldapConnectionOptions.Timeout); ldapConnectionOptions = new LdapConnectionStringParser().Parse("authenticationtype=ntlm;CONNECTIONLESS=false;FullyQuAlIfIeDDnsHostName=true;Password=P@ssword12;Servers=local-1.net,local-2.net,local-3.net;ProtocolVersion=2;Timeout=10;UserName=User-name"); Assert.IsNotNull(ldapConnectionOptions); Assert.AreEqual(AuthType.Ntlm, ldapConnectionOptions.AuthenticationType); Assert.AreEqual(null, ldapConnectionOptions.Credential.Domain); Assert.AreEqual("P@ssword12", ldapConnectionOptions.Credential.Password); Assert.AreEqual("User-name", ldapConnectionOptions.Credential.UserName); Assert.AreEqual(false, ldapConnectionOptions.DirectoryIdentifier.Connectionless); Assert.AreEqual(true, ldapConnectionOptions.DirectoryIdentifier.FullyQualifiedDnsHostName); Assert.IsNull(ldapConnectionOptions.DirectoryIdentifier.Port); Assert.AreEqual(3, ldapConnectionOptions.DirectoryIdentifier.Servers.Count); Assert.AreEqual("local-1.net", ldapConnectionOptions.DirectoryIdentifier.Servers.ElementAt(0)); Assert.AreEqual("local-2.net", ldapConnectionOptions.DirectoryIdentifier.Servers.ElementAt(1)); Assert.AreEqual("local-3.net", ldapConnectionOptions.DirectoryIdentifier.Servers.ElementAt(2)); Assert.AreEqual(2, ldapConnectionOptions.ProtocolVersion); Assert.AreEqual(TimeSpan.FromDays(10), ldapConnectionOptions.Timeout); }
public static IServiceCollection ConfigureDirectory(this IServiceCollection services, IConfiguration configuration, string configurationKey, string connectionStringName) { if (services == null) { throw new ArgumentNullException(nameof(services)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } services.Configure <DirectoryOptions>(configuration.GetSection(configurationKey)); services.Configure <LdapConnectionOptions>(options => { var connectionOptions = new LdapConnectionStringParser().Parse(configuration.GetConnectionString(connectionStringName)); options.AuthenticationType = connectionOptions.AuthenticationType; options.Credential = connectionOptions.Credential; options.DirectoryIdentifier = connectionOptions.DirectoryIdentifier; options.ProtocolVersion = connectionOptions.ProtocolVersion; options.Timeout = connectionOptions.Timeout; }); return(services); }
public static IServiceCollection ConfigureDirectories(this IServiceCollection services, IConfiguration configuration, string configurationKey) { if (services == null) { throw new ArgumentNullException(nameof(services)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var directoriesSection = configuration.GetSection(configurationKey); foreach (var directorySection in directoriesSection.GetChildren()) { var key = directorySection.Key; var connectionStringName = directorySection.GetSection("ConnectionStringName").Value; services.Configure <DirectoryOptions>(key, directorySection); services.Configure <LdapConnectionOptions>(key, options => { var ldapConnectionOptions = new LdapConnectionStringParser().Parse(configuration.GetConnectionString(connectionStringName)); options.AuthenticationType = ldapConnectionOptions.AuthenticationType; options.Credential = ldapConnectionOptions.Credential; options.DirectoryIdentifier = ldapConnectionOptions.DirectoryIdentifier; options.ProtocolVersion = ldapConnectionOptions.ProtocolVersion; options.Timeout = ldapConnectionOptions.Timeout; }); } return(services); }
public void Parse_IfValueIsWhitespace_ShouldReturnALdapConnectionOptionsInstanceWithoutPropertiesSet() { var ldapConnectionOptions = new LdapConnectionStringParser().Parse(" "); Assert.IsNotNull(ldapConnectionOptions); Assert.IsNull(ldapConnectionOptions.AuthenticationType); Assert.IsNull(ldapConnectionOptions.Credential); Assert.IsNull(ldapConnectionOptions.DirectoryIdentifier); Assert.IsNull(ldapConnectionOptions.ProtocolVersion); Assert.IsNull(ldapConnectionOptions.Timeout); }