jquery 如何在C#或JavaScript中将DN拆分和联接到Active Directory对象的路径

mbjcgjjk  于 2023-10-17  发布在  jQuery
关注(0)|答案(3)|浏览(101)

使用以下方法:
string distinguishedName = deUser.Properties["distinguishedName"].Value.ToString();
Dumped to a list为我提供了测试用户的正确DN:

CN=Test User,OU=PHL,OU=_users,DC=testdomain,DC=local

我希望输出以对象所在路径的形式读取,例如:

testdomain.local/_users/PHL

我在stackoverflow上做了一个搜索,它返回了相当多的旧的过时的帖子,使用的方法是只显示父目录,但没有显示路径。
我如何将上面的DN转换为字符串路径,不知道如何拆分和连接它,因为我基本上需要DN从右到左反转,中间用“/”来替换逗号。
我在C#. Net中的列表中使用了以下内容...

UsersList.Add(new UserAttributes
{

    Id = id++,
    FirstName = FirstName,
    MiddleInitial = MiddleInitial,
    LastName = LastName,
    SAMAccountName = samaccountName,
    description = Description,                             
    DistinguishedName = distinguishedName,
    email = email                                
});

return UsersList;

任何JavaScript或C#的帮助都将不胜感激。我使用的是数据表,这样我就可以在列中使用“render”函数进行拆分和连接。
如果有人可以在JavaScript或c#中使用一个简单的字符串

string distName = "CN=Test User,OU=PHL,OU=_users,DC=testdomain,DC=local";

var distName = "CN=Test User,OU=PHL,OU=_users,DC=testdomain,DC=local";

并告诉我如何分裂,加入,扭转它,我应该是好的把它变成一个函数使用。

juud5qan

juud5qan1#

using System;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        string test = "CN=Test User,OU=PHL,OU=_users,DC=testdomain,DC=local";

        List<string> splitted = new List<string>(test.Split(','));

        int ouCount = 0;
        for(int i = 0; i < splitted.Count; i++)
        {
            string[] split = splitted[i].Split('=');
            splitted[i] = split[1];
        
            if(split[0] == "OU")
            {
                ouCount++;
            }
        }

        string result = splitted[splitted.Count - 2] + "." + splitted[splitted.Count - 1];
        for(int i = 0; i < ouCount; i++)
        {
             result += "/" + splitted[i + 1];
        }

        Console.WriteLine(result);
    }
}

对于拆分,可以使用string.Split()函数。你写了你想反转你的列表,但是你给出的输出示例与此不匹配。

pgky5nke

pgky5nke2#

使用String.split()comma (,)拆分,然后使用模板文字格式化路径输出。

var distName = "CN=Test User,OU=PHL,OU=_users,DC=testdomain,DC=local";

const getValue = (input) => input.split("=").pop();

const formattedPath = (str) => {
  const list = str.split(",");
  const len = list.length;
  return `${getValue(list[len-2])}.${getValue(list[len-1])}/${getValue(list[len-3])}/${getValue(list[len-4])}`;
}

console.log(formattedPath(distName));
zzlelutf

zzlelutf3#

查看LdapName classs
它将ldap路径作为字符串,允许您通过索引访问元素,并提供许多其他功能。一些examples
Spring构建在Ldap之上命名LdapNameBuilder
看看

相关问题