LDAP(ActiveDirectory)数据库中的GUID验证问题。

管理信息系统

新成员
已加入
2020年9月3日
留言内容
1
编程经验
Beginner
就像本主题中一样,我难以验证guid是否存在于LDAP中。 Guid先前是从AD下载的,并保存在SQL数据库中。现在,为了满足我的应用程序的需要,我想在AD中验证我的GUID(如果存在)。我写了一段代码,连接到AD并检查给定的对象(adSearch.Filter ="(&(姓名=约翰·史密斯1)" ;) 。在这种情况下,我正在Name属性中查找Jan Kowalski 1,它可以正常工作,并可以使用许多其他属性,例如userPrincipalName等。检查GUID后,我立即得到adResults为空。 adSearch.Filter ="(&(objectGUID = 5c9a13b7-288d-4fdf-856f-e9ccddb5631e))";
C#:
       public static string GetGuid(string objectGuid, string objectClass)
        {
            DirectoryEntry adRoot = new DirectoryEntry(ConfigurationManager.AppSettings["LDAPConnection"], ConfigurationManager.AppSettings["LDAPUser"], ConfigurationManager.AppSettings["LDAPPass"]);
            Object adsiObj = adRoot.NativeObject;

            DirectorySearcher adSearch = new DirectorySearcher(adRoot);
            //adSearch.Filter = "(&(objectGUID=" + queryGuid + "))";
            adSearch.Filter = "(&(objectGUID=5c9a13b7-288d-4fdf-856f-e9ccddb5631e))";
            //adSearch.Filter = "(&(Name=Jan Kowalski 1))";

            SearchResult adResults = adSearch.FindOne();
            var adObject = adResults.GetDirectoryEntry();

            return adObject.Guid;
        }
 
由主持人最后编辑:

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,539
地点
弗吉尼亚州切萨皮克
编程经验
10+
欢迎来到论坛!将来,请将您的代码发布在代码标签中,以使所有人都更容易阅读。
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,539
地点
弗吉尼亚州切萨皮克
编程经验
10+
我不得不刷新一些被压抑的回忆,但是根据 RFC 2254,则需要将该guid编码为十六进制字符串。就像是
C#:
\b7\13\9a\5c\8d\28\df\47\6f\85\ ...
 
最佳 底部