用于将可分辨名称转换为规范名称的javascript代码
这是一个独特的名字:用于将可分辨名称转换为规范名称的javascript代码,javascript,active-directory,Javascript,Active Directory,这是一个独特的名字: "CN=Peterson\,Misha,OU=Users,OU=Bright,OU=APAC,DC=xyz,DC=ang,DC=com". 我需要把这个转换成 "xyz.ang.com/APAC/Bright/Users/Peterson,Misha" i、 例如,标准名称 “DC”部分中的任何内容都使用“.”即“xyz.ang.com”连接 “OU”部分中的任何内容都会在后面出现。中间有“/” 最后是“CN”部分,即“彼得森,米莎” 下面的javascript代码生
"CN=Peterson\,Misha,OU=Users,OU=Bright,OU=APAC,DC=xyz,DC=ang,DC=com".
我需要把这个转换成
"xyz.ang.com/APAC/Bright/Users/Peterson,Misha"
i、 例如,标准名称
private static string ExtractCN(string dn)
{
string[] parts = dn.Split(new char[] { ',' });
for (int i = 0; i < parts.Length; i++)
{
var p = parts[i];
var elems = p.Split(new char[] { '=' });
var t = elems[0].Trim().ToUpper();
var v = elems[1].Trim();
if (t == "CN")
{
return v;
}
}
return null;
}
私有静态字符串提取CN(字符串dn)
{
string[]parts=dn.Split(新字符[]{',});
对于(int i=0;i
我想要“xyz.ang.com/APAC/Bright/Users/Peterson,Misha”作为输出。最简单的方法是用一些字符串替换
\,
,这些字符串保证不会出现在字符串中的任何其他地方。这样,当您拆分(“,”)
时,它将被忽略
private static string ExtractCN(string dn)
{
string[] parts = dn.Split(new char[] { ',' });
for (int i = 0; i < parts.Length; i++)
{
var p = parts[i];
var elems = p.Split(new char[] { '=' });
var t = elems[0].Trim().ToUpper();
var v = elems[1].Trim();
if (t == "CN")
{
return v;
}
}
return null;
}
然后在返回结果时将其替换为,
。在本例中,我使用“{comma}”
:
你好欢迎来到Stackoverflow。因此,我们不是向导,无法猜测您尝试过(并提供了尝试的代码示例)或未能理解的内容。我强烈建议您在发布问题之前阅读本指南。我已经编辑了我的问题。您已经通过从
,
中拆分,发现您有问题,因为名称中也有它?是的,我已按“,”拆分。还有什么可能的解决方案?你能澄清一下你使用的语言吗?你说的是JavaScript,但代码不是JavaScript。我在回答中假设为C。请提供拆分的完整代码。
var de = new DirectoryEntry($"LDAP://{dn}");
de.RefreshCache(new [] { "canonicalName" });
var canonicalName = (string) de.Properties["canonicalName"].Value;