C# 以十进制格式获取用户 mS-DS-ConsistencyGuid
C# Getting user mS-DS-ConsistencyGuid in Decimal format
我正在尝试获取十进制形式的属性值,但始终得出空白值。
在 Active Directory 中,当打开 mS-DS-ConsistencyGuid 属性时,它会打开一个 "Octet String Attribute Editor"。在此编辑器中,它允许您选择十进制格式(这是我试图让我的 GUI 中的字符串显示为的确切格式。
这是我当前的代码,它可以很好地获取 attributes/properties,例如 distinguishedName、userPrincipleName 等,但它 returns 是一个空白值。
一个示例(非真实)值为:026 084 028 230 104 168 129 035 136 021 197 072 054 129 001 167
感谢任何帮助!!
using (var ctx = new PrincipalContext(ContextType.Domain, mydomain))
{
using (var user = UserPrincipal.FindByIdentity(ctx, UserID))
{
if (user != null)
{
cguid = ((DirectoryEntry)user.GetUnderlyingObject()).Properties["mS-DS-ConsistencyGuid"].Value as String;
}
}
}
与来自 AD 的所有 GUID 值一样(也像 objectGuid
),它以字节数组的形式呈现。您可以使用该字节数组创建一个 Guid
对象,然后用它做任何您想做的事:
var de = ((DirectoryEntry)user.GetUnderlyingObject());
var consistencyGuid = new Guid((byte[]) de.Properties["mS-DS-ConsistencyGuid"].Value);
cguid = consistencyGuid.ToString();
我正在尝试获取十进制形式的属性值,但始终得出空白值。
在 Active Directory 中,当打开 mS-DS-ConsistencyGuid 属性时,它会打开一个 "Octet String Attribute Editor"。在此编辑器中,它允许您选择十进制格式(这是我试图让我的 GUI 中的字符串显示为的确切格式。
这是我当前的代码,它可以很好地获取 attributes/properties,例如 distinguishedName、userPrincipleName 等,但它 returns 是一个空白值。
一个示例(非真实)值为:026 084 028 230 104 168 129 035 136 021 197 072 054 129 001 167
感谢任何帮助!!
using (var ctx = new PrincipalContext(ContextType.Domain, mydomain))
{
using (var user = UserPrincipal.FindByIdentity(ctx, UserID))
{
if (user != null)
{
cguid = ((DirectoryEntry)user.GetUnderlyingObject()).Properties["mS-DS-ConsistencyGuid"].Value as String;
}
}
}
与来自 AD 的所有 GUID 值一样(也像 objectGuid
),它以字节数组的形式呈现。您可以使用该字节数组创建一个 Guid
对象,然后用它做任何您想做的事:
var de = ((DirectoryEntry)user.GetUnderlyingObject());
var consistencyGuid = new Guid((byte[]) de.Properties["mS-DS-ConsistencyGuid"].Value);
cguid = consistencyGuid.ToString();