从SQL Server获取Active Directory GUID

时间:2014-12-30 17:21:14

标签: c# sql-server-2008 active-directory

我使用以下代码在User GUID中从Active Directory获取C#

var GUIDID = "";

using (var domainContext = new PrincipalContext(ContextType.Domain, domain))
{
     using (var user = UserPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, userNameToUse))
     {
         if (user != null)
         {
            GUIDID = user.Guid.ToString();
         }
     }                           
 }

因此,上述代码对特定人的输出是:

  

7b8b17f1-9997-46ac-bec4-c747eed2de33

我现在要做的是使用SQL Server 2008GUIDID查询Active Directory。但是,我遇到的问题是我不知道列的名称

我尝试使用以下代码从SQL中搜索同一个人(使用他们的全名)

SELECT cn, objectGUID
FROM  'LDAP://xxx.local/OU=xxx Users,DC=xxx,DC=xxx'
WHERE objectClass = 'User' AND cn = 'John Smith'

然而,objectGUIDOBjectSID与我GUIDID代码返回的C#不同。

我还在select *查询中尝试SQL,但它只返回路径。

有关如何从SQL代码中找到GUID COLUMN name的任何建议吗?

谢谢

1 个答案:

答案 0 :(得分:-1)

解决方案非常简单。我需要转换ObjectID

SELECT CONVERT(UNIQUEIDENTIFIER,0xF1178B7B9799AC46BEC4C747EED2DE33);

希望它对某人有帮助。