当我们在工作中登录到我们的 Windows 机器时,我们使用“CORP\username”。
给定用户的 SID 和他们登录的域控制器,我如何派生该字符串?我正在使用 .NET 3.5 中添加的 DirectoryServices API,如下所示:
PrincipalContext domaincontroller = new PrincipalContext(ContextType.Domain, "192.168.30.115");
UserPrincipal user = UserPrincipal.FindByIdentity(domaincontroller, IdentityType.Sid, "S-1-5-21-293182769-1777760488-2957165303-1798");
我已经挖掘了域控制器对象和用户对象,并看到了很多这样的东西:
user.Name: john smith
user.DisplayName: john smith
user.UserPrincipalName: john.smith@corp.mycompany.com
user.SamAccountName: john.smith
如果我深入挖掘 UserPrinciple 对象的私有内容,我会发现两个标记为“domainFlatName”和“FlatDomainName”的字段正是我想要的(下面的屏幕截图)。这些是什么意思,以及如何通过公共界面访问它们?