C# 分离ldap连接字符串的最佳方法是什么?
我正试图找出最好的方法,通过使用正则表达式或LDAP字符串中现有的字符串方法,将域名和其余信息转换成2个字符串 以下是active directory连接字符串:C# 分离ldap连接字符串的最佳方法是什么?,c#,regex,string,C#,Regex,String,我正试图找出最好的方法,通过使用正则表达式或LDAP字符串中现有的字符串方法,将域名和其余信息转换成2个字符串 以下是active directory连接字符串: "LDAP://yourdomain.com/OU=Bla,OU=Bla2,OU=Bla3,DC=yourdomain,DC=com" 我想得到的结果是: string DomainName = "yourdomain.com" string Container = "OU=Bla,OU=Bla2,OU=Bla3,DC=yourdo
"LDAP://yourdomain.com/OU=Bla,OU=Bla2,OU=Bla3,DC=yourdomain,DC=com"
我想得到的结果是:
string DomainName = "yourdomain.com"
string Container = "OU=Bla,OU=Bla2,OU=Bla3,DC=yourdomain,DC=com"
这是一个带有LDAP协议的标准URL,我将使用对您可用的URL
var uri = new Uri(LDAPConnectionString);
var host = uri.Host;
var Container = uri.Segments[1];
等等。这是一个带有LDAP协议的标准URL,我将使用您可用的
var uri = new Uri(LDAPConnectionString);
var host = uri.Host;
var Container = uri.Segments[1];
等等。这可以使用简单的字符串操作来完成,不需要正则表达式
var parts = "LDAP://yourdomain.com/OU=Bla,OU=Bla2,OU=Bla3,DC=yourdomain,DC=com".Replace("LDAP://", "").Split('/');
Console.WriteLine(parts[0]); // yourdomain.com
Console.WriteLine(parts[1]); // OU=Bla,OU=Bla2,OU=Bla3,DC=yourdomain,DC=com
这可以使用简单的字符串操作来完成,不需要正则表达式
var parts = "LDAP://yourdomain.com/OU=Bla,OU=Bla2,OU=Bla3,DC=yourdomain,DC=com".Replace("LDAP://", "").Split('/');
Console.WriteLine(parts[0]); // yourdomain.com
Console.WriteLine(parts[1]); // OU=Bla,OU=Bla2,OU=Bla3,DC=yourdomain,DC=com
实际上,我认为URI类不会解析路径的另一端,因为它不是真正的标准URL。但是,我测试了uri.Segments[1]并给出了第二部分。这似乎是一种正确的方法,但我没有完全理解。你能再解释一下吗?因此,LDAP字符串位于web.config文件中。我将其转换为代码,并将其分为两部分,即域名和其他部分。ThanksIt是一个URL。你习惯了像这样的URLhttp://... 但是URL规范是独立于协议的,我实际上认为URI类不会解析路径的另一端,因为它不是真正的标准URL。但是,我测试了uri.Segments[1]并给出了第二部分。这似乎是一种正确的方法,但我没有完全理解。你能再解释一下吗?因此,LDAP字符串位于web.config文件中。我将其转换为代码,并将其分为两部分,即域名和其他部分。ThanksIt是一个URL。你习惯了像这样的URLhttp://... 但是URL规范与协议无关。如果某个containername包含斜杠,则容器部分将失败。请改为使用.Splitnew Char[]{'/'},2,如果某个containername包含斜杠,则此操作对于容器部分将失败。请改用.Splitnew Char[]{'/'},2,请参见