首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C# Active Directory DirectorySearcher仅查找我自己的用户

C# Active Directory DirectorySearcher是一个用于在Active Directory中进行用户搜索的类。它提供了一种在C#中与Active Directory进行交互的方式。

Active Directory是微软开发的一种目录服务,用于存储和组织网络中的用户、计算机和其他资源。它是一种分布式数据库,可以在整个网络中共享和访问。

DirectorySearcher是C#中用于搜索Active Directory的类。它允许我们指定搜索条件,并返回与条件匹配的用户对象。

在使用DirectorySearcher进行用户搜索时,可以通过设置SearchRoot属性来限定搜索的起始位置。如果希望仅查找自己的用户,可以将SearchRoot设置为当前用户所在的组织单位(OU)或容器。

以下是一个示例代码,演示如何使用C# Active Directory DirectorySearcher仅查找自己的用户:

代码语言:txt
复制
using System;
using System.DirectoryServices;

class Program
{
    static void Main()
    {
        // 创建DirectoryEntry对象,指定要搜索的起始位置
        DirectoryEntry entry = new DirectoryEntry("LDAP://OU=Users,DC=example,DC=com");

        // 创建DirectorySearcher对象,设置搜索条件
        DirectorySearcher searcher = new DirectorySearcher(entry);
        searcher.Filter = $"(&(objectClass=user)(sAMAccountName={Environment.UserName}))";

        // 执行搜索并获取结果
        SearchResult result = searcher.FindOne();

        if (result != null)
        {
            // 获取用户对象的属性值
            string username = result.Properties["sAMAccountName"][0].ToString();
            string displayName = result.Properties["displayName"][0].ToString();
            string email = result.Properties["mail"][0].ToString();

            Console.WriteLine($"用户名: {username}");
            Console.WriteLine($"显示名称: {displayName}");
            Console.WriteLine($"电子邮件: {email}");
        }
        else
        {
            Console.WriteLine("未找到用户");
        }
    }
}

上述代码中,我们首先创建了一个DirectoryEntry对象,指定了要搜索的起始位置。然后创建了一个DirectorySearcher对象,并设置了搜索条件,使用了当前用户的sAMAccountName属性作为过滤条件。最后执行搜索并获取结果,如果找到了匹配的用户对象,就可以获取其属性值并进行相应的处理。

需要注意的是,上述示例中的LDAP路径和属性名称是示意性的,实际使用时需要根据自己的Active Directory环境进行相应的调整。

推荐的腾讯云相关产品:腾讯云身份认证服务(CAM)。CAM是腾讯云提供的一种身份和访问管理服务,可以帮助用户管理和控制其在腾讯云上的资源访问权限。CAM提供了丰富的身份认证和授权功能,可以满足用户对于用户管理、权限管理和资源访问控制的需求。了解更多关于腾讯云身份认证服务的信息,请访问:腾讯云身份认证服务

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C# AD(Active Directory)域信息同步,组织单位、用户等信息查询

接上篇 Windows Server 2008 R2 配置AD(Active Directory)域控制器 对AD域结合常见需求用C#进行一些读取信息操作^_^!...示例准备 打开上一篇文章配置好AD域控制器 开始菜单-->管理工具-->Active Directory 用户和计算机 新建组织单位和用户 ? 新建层次关系如下: ?...知识了解   我们要用C#访问Active Directory非常容易,主要用到轻量目录访问协议 (LDAP) System.DirectoryServices命名空间下两个组件类 DirectoryEntry...;      比较着重还是用户信息,特别是帐号、邮箱、SID等信息; 下面我们开始连接域,并读取出示例准备中键好组织单位和用户     首先编写代码用LDAP尝试对域进行访问   形式:LDAP:...示例中只对用户进行了读取了几个属性,用过AD域应该都知道,用户属性较多也比较常用。

3.4K50

C#开发中Windows域认证登录

对于如何实现,我思考了一段时间,大体思路如下: 1、在GPM中创建用户账号和其在Windows域中账号一致,如域账号为Troy.Cui,那么GPM中登录userName也是Troy.Cui 2、GPM...中账号需要单独手工创建,因为涉及到权限、角色设定,如果使用域账号登录时候,自动创建GPM账号意义不大 3、不启用IIS中Windows集成认证,因为我们还有一部分用户是没有域账号,所以必须使用模拟域用户登录方式进行认证...server 最后通过参考《[URL=http://www.codeproject.com/Articles/18102/Howto-Almost-Everything-In-Active-Directory-via-C...]Howto: (Almost) Everything In Active Directory via C#[/URL]》和《[URL=http://www.cnblogs.com/netlover/archive...又有缺点,会对不需要域认证用户早成负担。

1.9K10
  • 如何给销售经理解释客户生效期、失效期

    ,可是显示如下,明明是Active呀!...我让他去找财务继续收款,有问题再找我。 整整一天过去了,都没再来找我。 通过这个Case,其实我们ERP系统很多地方都有Effective Date, Expriy Date概念。...这一点大家自己开发系统时候一定要参考学习。这里举几个例子,来说明原因。...这种占到我日常处理用户Case一半一样吧。而对于那些莫名奇妙报错,或者从来没遇到问题,我解决思路是自己研究,实在不行问总部,再不行就联系厂商Infor。...不喜欢那种,用了10次没报过错,11次提示了一个信息,自己看都不看,就大惊小怪,邮件乱发一通,电话乱抱怨一通。死脑筋,不会变通用户

    57410

    C#进阶-LINQ实现对集合增删改

    前面的章节细致介绍了LINQ扩展包具体方法使用,本篇则是演示LINQ在日常开发中常用操作,实现结果集增删改。...目前LINQ支持两种语法,我会在每个案例前先用大家熟知SQL语句表达,再在后面用C#两种LINQ语法分别实现。...LINQ语法第一次接触难免感到陌生,最好学习方式就是在项目中多去使用,相信会有很多感悟。 对集合增删改 Linq是对集合进行操作,这里列举对集合增删改常用方法。...数据源1: 数据源2: ① 新增集合内对象 /* 新增一个任意属性用户到集合 */ /* C#版本1 */ User userAdd = new User() { id = 11, name..., salary = 1300} ③ 删除集合内指定对象 /* 删除集合内所有职业为医生用户对象 */ /* 推荐使用RemoveAll方法批量删除 */ /* C#版本1 */ list.RemoveAll

    22311

    在满补丁Win10域主机上绕过图形接口依赖实现本地提权

    在最近一次活动目录(Active Directory)评估期间,我们以低权限用户身份访问了一个完全修补且安全域工作站。...然后,此身份验证将被中继到Active Directory LDAP服务,以便为该特定计算机设置基于资源约束委派[2],这引起了我们注意。...默认Active Directory ms-DS-MachineAccountQuota属性,允许所有域用户向域中添加最多10个计算机帐户[4]。...默认情况下,经过身份验证用户Active Directory集成DNS(ADIDNS)区域中,具有“创建所有子对象”ACL。这样可以创建新DNS记录。 ?...前三个条件很容易满足,因为它们代表了默认Active Directory和Windows配置。但是,GUI依赖在我们场景中着实是一个令人感到沮丧限制。

    1.4K10

    对不起,你以为SQL进阶,只是别人眼中入门

    所以 DBA 高级方向,我放在下篇文章。 作为开发,CRUD 是基本功,但很多朋友,写个行列转换,都要下手册,要我说你高级,还真不敢。...有些低端培训机构,找我推广告,我一看,他们把这一道关 SQL 知识点,写在他们培训手册或课程大纲里,真是要笑掉大牙。美其名曰,SQL 进阶技能。...亲,请对比下你自己函数与系统函数性能,再来这么横,好嘛。自己有多懒,代码有多烂,心里没个数么。都没用过系统函数,凭自己那点水平造轮子,不是在给自己挖坑,给团队挖坑,给公司挖坑吗?...但c#是完美支持正则,你会不会想到用到c#去封装一个函数,注册到SQL Server中,供团队使用?...继续这么深入研究下去,在数据库这个行业,你肯定不愁工作事儿。 说这些理论的话,我都觉得空洞了。

    76720

    文件系统安全-权限管理服务

    Windows Server 2008 R2操作系统Active Directory权限管理服务(AD RMS)是一种信息保护技术,它可以支持ad RMS应用程序,以保护数字信息不受未经授权使用,无论是在线和离线...第四步:在任务栏中点击“开始”,选择管理工具,点击“active directory用户和计算机”。...第五步:在active directory用户和计算机中users里创建三个用户,rmsadmin,rmsuser1,rmsadmin2。...第七步:打开虚拟机server2008test,打开命令指示符,输入ipconfig –all,看本机地址(需要将本地DNS地址改为域控制器地址)。...第十五步:点击指定,用户为域中rmsadmin用户,点击下一步继续安装。 第十六步:选择使用AD RMS集中管理密钥存储。

    1.9K30

    C#进阶-LINQ表达式总结

    LINQ(语言集成查询-language intergrated query)是一款很常用扩展包,支持C#和Java,在系统进行查询数据动作时,相较于执行数据库层面的SQL语句,后端层面的LINQ运行起来会更加高效稳定...,可以极大缩短每次与数据库交互时间,增加系统功能稳定性,提高查询效率。...本篇文章是LINQ使用教程,用LINQ模仿对应SQL语句执行效果。...、Skip、Take、Top) 章节三:分组查询 (GroupBy) 章节四:多表查询 Ⅰ(交集、并集、差集、去重) 章节五:多表查询 Ⅱ(Join连接查询) 章节六:投影 章节七:LINQ实现对集合增删改...new User { id = 10, name = "Hu Jin", age = 21, gender = false, occupation = "Student"} }; 后面大家根据自己需要跳转到各个章节学习

    16232
    领券