[英]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.