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

如何在给定UserPrincipal对象的情况下从Active Directory获取"公司"和"部门"?

在给定UserPrincipal对象的情况下,从Active Directory获取"公司"和"部门"的方法如下:

  1. 首先,确保已经安装了System.DirectoryServices.AccountManagement命名空间。如果没有,请安装该命名空间。
  2. 使用UserPrincipal对象,可以通过以下方法获取"公司"和"部门"信息:
代码语言:csharp
复制
using System;
using System.DirectoryServices.AccountManagement;

public static void GetCompanyAndDepartment(UserPrincipal userPrincipal)
{
    // 获取UserPrincipal的DirectoryEntry对象
    DirectoryEntry directoryEntry = userPrincipal.GetUnderlyingObject() as DirectoryEntry;

    // 获取"公司"属性
    string company = directoryEntry.Properties["company"].Value.ToString();

    // 获取"部门"属性
    string department = directoryEntry.Properties["department"].Value.ToString();

    Console.WriteLine($"公司: {company}");
    Console.WriteLine($"部门: {department}");
}
  1. 调用GetCompanyAndDepartment方法,传入UserPrincipal对象:
代码语言:csharp
复制
UserPrincipal userPrincipal = // 获取UserPrincipal对象;
GetCompanyAndDepartment(userPrincipal);

这样,就可以从Active Directory中获取"公司"和"部门"信息了。

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

相关·内容

  • .net core 认证与授权(一)

    .net core web并不是一个非常新的架构,很多文章提及到认证与授权这个过程,但是一般都会提及到里面的方法怎么用的,而不是模拟一个怎样的过程,所以我打算记录自己的理解。 什么是认证?我们大学毕业有学士证书和毕业证书,来证明你是一个学士。 什么是授权,比如说你被认证是我的朋友后,你可以拿着这个身份,可以进入我的朋友圈看动态。 那么.net core 的认证与授权是一个什么样的过程,在这里提出简单模式是我给你颁发了证书,证明了你的身份,然后呢,你可以拿到你的身份卡之后,你要经过验证,得到授权,然后进入中华人民共和国,就是这个过程。 正文部分均为我的理解,可能存在误差,如果不对请指正。

    01

    AD域中常见属性名词解释

    AD域中常见属性名词解释 Active Directory(AD)活动目录 schema对象模型 Organizational Unit(OU)组织单位 Distinguished name(DN)识别名 Canonical Name(CN)正式名称 Domain Controllers(DC)域控制器 displayname显示名称 homephone住宅电话 家庭电话(M) givenname名(F) samaccounttype账号类型 mobile手机 primarygroupid分组ID objectclass对象类 取值person, organizationalPerson, user sn姓(L) displayName 显示名称(S) description 描述(D) physicalDeliveryOfficeName 办公室(C) initials英文缩写(I) telephoneNumber电话号码(T) mail电子邮件(M) wWWHomePage网页(W) otherTelephone电话号码-其它(O) url网页-其它(R) co国家/地区(O) st省/自治区(V) l市/县(C) streetAddress 街道(S) postOfficeBox 邮政信箱(B) postalCode邮政编码(Z) userPrincipalName 用户登录名(U) sAMAccountName 用户登录名(Windows 2000 以前版本)(W) pager寻呼机(P) mobile 移动电话(B) facsimileTelephoneNumber传真(F) ipPhone IP电话(I) info 注释 otherHomePhone 家庭电话-其它(O) otherPager 寻呼机-其它(T) otherMobile移动电话-其它(B) otherFacsimileTelephoneNumber传真-其它(E) otherIpPhone IP电话-其它(R) company 公司(C) department 部门(D) title 职务(J) manager 经理-姓名(N) directReports 直接下属(E)

    03

    内网协议NTLM之内网大杀器CVE-2019-1040漏洞

    Preempt的研究人员发现了如何在NTLM身份验证上绕过MIC(Message Integrity Code)保护措施并修改NTLM消息流中的任何字段(包括签名)。该种绕过方式允许攻击者将已经协商签名的身份验证尝试中继到另外一台服务器,同时完全删除签名要求。所有不执行签名的服务器都容易受到攻击。 这个漏洞其实就是可以绕过NTLM MIC的防护,也是NTLM_RELAY漏洞。攻击者利用该漏洞可以绕过NTLM中的MIC(Message Integrity Code)。攻击者可以修改已经协商签名的身份验证流量,然后中继到另外一台服务器,同时完全删除签名要求。通过该攻击方式可使攻击者在仅有一个普通域账号的情况下,运程控制域中任意机器(包括域控服务器)。

    03

    SPN信息扫描

    在使用Kerberos身份验证的网络中,必须在内置计算机帐户(如NetworkService或LocalSystem)或用户帐户下为服务器注册SPN。对于内置帐户,SPN将自动进行注册。但是,如果在域用户帐户下运行服务,则必须为要使用的帐户手动注册SPN。因为域环境中每台服务器都需要在Kerberos身份验证服务注册SPN,所以我们可以直接向域控制器进行查询我们需要的服务的SPN,就可以找到我们需要使用的服务资源在哪台机器上。Kerberos身份验证使用SPN将服务实例与服务登录帐户相关联。如果在整个域中的计算机上安装多个服务实例,则每个实例都必须具有自己的SPN。如果客户端可能使用多个名称进行身份验证,则给定的服务实例可以具有多个SPN。例如,SPN总是包含运行服务实例的主机名称,所以服务实例可以为其主机的每个名称或别名注册一个SPN。

    01

    谈谈域渗透中常见的可滥用权限及其应用场景(二)

    在谈论这篇文章的主要内容之前,我想先讲讲Bloodhound这个工具,BloodHound 是一个强大的内网域渗透提权分析工具,它把域中各种抽象的概念和结构放在了一个能运行且直观,并易于使用的图形化功能中,自动用于提取和分析数据,高效准确地显示如何提升 AD 域中的权限。它使用图形理论来自动化的在 Active Directory 环境中搞清楚大部分人员的关系和细节。我们可以使用 BloodHound 快速深入了解 AD 的一些用户关系,了解哪些用户具有管理员权限,哪些用户有权对任何计算机都拥有管理权限,以及有效的用户组成员信息。它是一个对于我们在域渗透中寻找攻击向量、规划攻击路线、进行横向移动等都有有巨大的帮助,在这篇文章中我们也会用到这款工具。

    02

    Microsoft 本地管理员密码解决方案 (LAPS)

    问题 企业环境中计算机上本地帐户的真正问题是“本地”一词用词不当。如果网络上的 50 台计算机的本地管理员帐户为“Administrator”,密码为“P@55w0rd1!”,首先这是一个可怕的密码。其次,更重要的是,如果其中一台计算机受到威胁,它们都将受到威胁。Windows 非常有帮助。非常有用,如果您将本地管理员凭据传递给具有相同本地凭据的另一台计算机,则授予访问权限,就像您使用目标系统凭据登录一样。将管理员凭据转储到一个以获取所有管理员!缓解此问题的最佳方法是确保每台计算机都有一个不同的本地管理员帐户密码,该密码长、复杂且随机,并且会定期更改。

    01
    领券