簡體   English   中英

如何在 C# 或 JavaScript 中將 DN 拆分並加入到來自 Active Directory 對象的路徑

[英]How to split and join a DN to a path from an Active Directory object in either C# or JavaScript

使用以下內容:

string distinguishedName = deUser.Properties["distinguishedName"].Value.ToString();

轉儲到列表中為我提供了測試用戶的正確 DN:

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

我希望輸出以對象所在路徑的形式讀取,例如:

testdomain.local/_users/PHL

我已經在 stackoverflow 上進行了搜索,它使用僅顯示父 OU 的方法返回了相當多的舊帖子,但沒有任何路徑。

如何將上面的 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# 中的任何幫助。 我正在使用數據表,因此我可以使用列中的“渲染”功能進行拆分和連接。

如果有人可以在 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";

並告訴我如何拆分、加入、反轉它,我應該可以把它變成一個函數來使用。

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() 函數。 您寫道要反轉您的列表,但您給定的輸出示例與此不匹配。

使用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));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM