【问题标题】:Checking user name against LDAP directory without password c# 4.5在没有密码的情况下根据 LDAP 目录检查用户名 c# 4.5
【发布时间】:2018-09-07 21:22:18
【问题描述】:

我正在使用 C#.Net 4.5。我正在使用下面的代码来检查特定用户是否属于给定的 AD 组。但是,虽然我输入了有效的用户详细信息,但它没有给出结果。

DirectoryEntry de = new DirectoryEntry();
de.Path = "LDAP://xyz.com";
DirectorySearcher deSearch = new DirectorySearcher();
deSearch.SearchRoot = de;
string usr = "test1";
deSearch.Filter = string.Format("(&(objectCategory=person)(anr={0}))", usr);
SearchResult result = deSearch.FindOne();

我也尝试过使用以下过滤条件,但结果为空。请让我知道我的代码出了什么问题。

  1. deSearch.Filter ="(&(objectCategory=person)(objectClass=user)(sn="+usr+"))"
  2. deSearch.Filter = "(uid=" + usr+ ")";
  3. deSearch.Filter = "(&(objectCategory=person)(objectClass=user)(racfid="+usr+"))"

【问题讨论】:

    标签: c#-4.0 ldap


    【解决方案1】:

    像这样尝试userPrincipalName

    deSearch.Filter = "(&(objectCategory=person)(objectClass=user)(userPrincipalName=" + usr  + "@*))";
    deSearch.PropertiesToLoad.Add("userPrincipalName");
    deSearch.PropertiesToLoad.Add("displayName");
    
    SearchResult result = deSearch.FindOne();
    

    【讨论】:

    • 在最后一行,我想我应该用 deSearch 替换 aDirSearcher。对吗?
    • 我已将 aDirSearcher 替换为 deSearch 并尝试过。结果仍然显示空值
    • 是的aDirSearcher = deSearch。我编辑了我的答案。您的 usr 变量到底是什么? test1是windows登录?您可以尝试将userPrincipalName= 替换为cn=
    • 对不起,佩斯卡。用 cn 替换 userPrincipalName 后它也不起作用
    猜你喜欢
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多