Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于将可分辨名称转换为规范名称的javascript代码_Javascript_Active Directory - Fatal编程技术网

用于将可分辨名称转换为规范名称的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、 例如,标准名称

  • “DC”部分中的任何内容都使用“.”即“xyz.ang.com”连接

  • “OU”部分中的任何内容都会在后面出现。中间有“/”

  • 最后是“CN”部分,即“彼得森,米莎”

  • 下面的javascript代码生成“Peterson/”作为输出

    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;