类似于 Active Directory 中的搜索

2024-05-06

我正在使用 C# 中的以下代码搜索 LDAP,以轮询用户的活动目录:

DirectoryEntry entry = new DirectoryEntry(ldapPath, userName, password);

DirectorySearcher Searcher = new DirectorySearcher(entry);

Searcher.CacheResults = true;
Searcher.SearchScope = SearchScope.Subtree;

Searcher.Filter = "(&(&(objectCategory=person)(objectClass=user))
    (|(samaccountname=" + userSearch.SamAccountName + "*)
    (&(GivenName=" + userSearch.FirstName + "*)(SN=" + userSearch.Surname + 
        "*))))";

Searcher.PropertiesToLoad.AddRange(new string[] {"DisplayName", "GivenName",
    "DistinguishedName","Title","manager",
         "mail", "physicalDeliveryOfficeName", "DirectReports", "Company", 
         "Description", "SAMAccountName"});

SearchResultCollection results = Searcher.FindAll();

List<ActiveUser> activeUsers = new List<ActiveUser>();

我使用输入参数 userSearch.FirstName = "jo" 和 userSearch.LastName = "bl" 运行它,并期待一个用户“Joe Bloggs”,但这没有出现在结果列表中。如果我使用 Windows 中的 Active Directory 用户和计算机工具中的名称文本框尝试执行此操作,Joe Bloggs 将显示为列表中的唯一用户。我正在使用正确的 LDAP 路径。我是否使用了错误的过滤器来复制 Windows 工具中的功能?是否有针对显示名称的“类似”搜索?

任何帮助,将不胜感激。


如果您使用的是 .NET 3.5 或更高版本,则可以使用PrincipalSearcher和一个“按示例查询”主体来进行搜索:

// create your domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

// define a "query-by-example" principal - here, we search for a UserPrincipal 
// and with the first name (GivenName) of "Bruce"
UserPrincipal qbeUser = new UserPrincipal(ctx);
qbeUser.GivenName = "Jo*";
qbeUser.Surname = "Bl*";

// create your principal searcher passing in the QBE principal    
PrincipalSearcher srch = new PrincipalSearcher(qbeUser);

// find all matches
foreach(var found in srch.FindAll())
{
    // do whatever here - "found" is of type "Principal" - it could be user, group, computer.....          
}

如果您还没有——请务必阅读 MSDN 文章管理 .NET Framework 3.5 中的目录安全主体 http://msdn.microsoft.com/en-us/magazine/cc135979.aspx它很好地展示了如何充分利用新功能System.DirectoryServices.AccountManagement

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类似于 Active Directory 中的搜索 的相关文章

随机推荐

  • 如何确定输入的模式是“Int,VarChar,Date,Time ...”等

    我有一个下拉菜单 其中包含DataType 和一个文本框 这是用于输入的Regex Pattern 如果我进入 test 在文本框中 或从下拉菜单中选择Int 如果在文本框中输入 则其模式是错误的 0 9 那么它的correct patte
  • 元视口标签似乎被完全忽略或没有效果

    我把这个标签放在了头部一个网页 http www belovedobjects de 由于某种原因 它在我的 iPhone 上似乎被忽略了 甚至添加了user scalable no没有影响 我尝试了许多宽度 初始比例等值 似乎没有任何效果
  • 当有效的 django 表单保存在数据库中时如何触发自定义 python 代码

    Django 新手 我创建了一个简单的表单如下this https www youtube com watch v 3XOS UpJirU教程 我的表单正确地将数据保存在我的 Postgres 连接的本地数据库中 我想知道 每当将有效表单保
  • 如何使用 ASP.Net Core Identity 从登录用户检索 Google 个人资料图片?

    好的 我目前正在使用 ASP NET Core 1 1 2 和 ASP NET Core Identity 1 1 2 其中重要的部分是启动 cs看起来像这样 public void Configure IApplicationBuilde
  • R - 过滤器坐标

    我是 R 新手 我有一个简单的问题 据我看来 但到目前为止我还没有找到解决方案 我有一组 长 2D x y 坐标 只是 2D 空间中的点 如下所示 ID x y 1 1758 56 1179 26 2 775 67 1197 14 3 29
  • ASP.NET Core 3:如何在自定义库中引用 3.0.0 程序集?

    我看到引用的应用程序Microsoft AspNetCore App框架 又称为 ASP NET Core 3 0 使用程序集中的类型Microsoft AspNetCore Mvc Abstractions Version 3 0 0 0
  • 使用正整数参数优化

    我需要解决一个需要比较具有相同列数的两个矩阵的问题 其中之一被操纵 直到获得最佳匹配 我对两个矩阵之间的差异进行评分的方式非常复杂 我仍然需要最终确定它 目前我真正感兴趣的是找到一种仅适用于正整数的搜索 优化算法 我创建了一个简单的示例 其
  • PostgreSQL 计数查询、物化视图的效率[重复]

    这个问题在这里已经有答案了 可能的重复 PostgreSQL 计数查询优化 https stackoverflow com questions 13075210 optimization of count query for postgre
  • MapKit 是否支持街景?

    我可以在我的应用程序中使用 Google 地图街景吗 No 填充字符以克服有问题的最小值
  • 复制文件而不冻结 GUI

    好的 基本上这就是我想做的 我的文件列表中有一个文件列表应用程序包 例如在文件夹中myData 请注意 子文件夹 等中有很多文件 文件夹 我想要复制整个文件树到用户磁盘上的给定位置 我需要有访问每个单独的文件被复制 因为其中一些在复制之前需
  • Excel JS - 获取范围数字格式

    我正在 React 中使用 Excel Office JS API 数据被推送到 Excel 范围 我正在尝试执行以下逻辑 检查范围 单元格格式是否为常规 如果是通用格式 则将格式设置为特定的日期时间格式 如果不是通用格式 请勿更改格式 看
  • 如何与开发团队成员一起在我的设备上测试 iPhone 应用程序?

    我是一名 iOS 初学者 我收到团队成员的邀请 所以我接受了邀请 现在我正在尝试在我的设备上测试 iPhone 应用程序 但我在 Xcode 帐户中看不到团队帐户 只有我的免费开发者帐户 个人团队 如果我与团队帐户成员一起测试该怎么办 No
  • 测量字符串的像素宽度

    我需要在 Cocoa Touch 中测量字符串的像素宽度 谁能给我指出一个解释如何执行此操作的链接 在 iPhone 操作系统上略有不同 请查看NSString UIKit 添加参考 http developer apple com iph
  • 打开 Chrome 扩展程序时出现 Service Worker TypeError

    当我打开 WAVE Web 可访问性评估工具 扩展时 我的服务工作人员在 Chrome 中抛出此错误 未捕获 承诺中 类型错误 请求方案 chrome extension 是 不支持的 在 sw js 52 匿名 sw js 52 Prom
  • 条件表达式在包内是否被破坏?

    考虑以下片段 requires designide rtl vcl IF RTLVersion lt 19 0 E2026 Constant expression expected IF CompilerVersion 22 0 same
  • Berkeley DB 文件分割

    我们的应用程序使用 berkeley db 进行临时存储和持久性 一个新的问题出现了 来自各种输入源的大量数据 现在底层文件系统不支持这么大的文件大小 有没有办法将 berkeley DB 文件拆分为逻辑文件段或分区而不丢失其中的数据 我还
  • 从MySQL php中的特定列获取最大ID和最小ID

    我是新来的php现在尝试从中检索数据MySQL到安卓 这是我的工作细节 table In 检索总小时数函数 我想检索最短 ID 时间 and 最大 ID 超时 from MySQL到安卓通过php最后使用下面的代码来获取总小时数 假设 ID
  • 从不同的类访问 NSMutableArray

    我有一个类 其中形成了 NSMutableArray 对象 如下所示 navBarColour NSMutableArray alloc initWithObjects colourOfNavBar nil 然后我有另一个类 其中正确添加了
  • 每次分页获取后将数据附加到同一集合

    我正在尝试使用主干填充 Instagram 图像 我基本上有以下3个模型 用户模型存储与 Instagram 相关的所有用户信息 App Models User Backbone Model extend defaults id acces
  • 类似于 Active Directory 中的搜索

    我正在使用 C 中的以下代码搜索 LDAP 以轮询用户的活动目录 DirectoryEntry entry new DirectoryEntry ldapPath userName password DirectorySearcher Se