c# - 为什么我可以使用“new DirectoryEntry(guid)”而不是 Principle.FindByIdentity 找到 OU?
问题描述
我正在尝试使用DirectoryServices.AccountManagement
.NET Core 2.1 查找我们商店位置的用户帐户。
如果我只是DirectoryEntry
使用 OU 的 guid 新建一个,它可以将条目拉回没有问题。但是一旦我尝试使用AccountManagement
主体,它总是为商店的用户帐户返回 null。
每个商店位置也有一个通讯组,我可以使用 找到那些Principal.FindByIdentity
,而不是商店的实际用户帐户。
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, _domainName, _username, _password))
{
// returns null
var testOU = Principal.FindByIdentity(pc, IdentityType.Guid, store.ActiveDirectoryOU.ToString());
// returns proper DirectoryEntry for store's User Account
var testEntry = new DirectoryEntry("LDAP://<GUID=" + store.ActiveDirectoryOU + ">");
// returns proper Principal for store's distribution group
var testGroup = Principal.FindByIdentity(pc, store.ActiveDirectoryGroup.ToString());
}
是否有某种设置可以防止某些用户帐户被看到DirectoryServices.AccountManagement
?还是我犯了一些新手错误?
解决方案
推荐阅读
- database - 如何在不使用 Multi-az 的情况下将数据从一个 RDS 实例复制到另一个实例?
- python - 为相似文本找到最佳匹配并仅保留唯一值
- amazon-s3 - Ruby 比较非常大的文件
- javascript - Vue.js:如何修复“b-modal”未显示在自定义组件中
- python - 如何在单个 txt 文件中写入连续输出
- swift - ARKit People Occlusion 样本是如何完成的?
- iterator - 使用 Iterable 和 Iterator 角色实现可迭代类
- c# - 如何使用 MSTest TestContext 获取错误消息?
- mysql - 选择 MAX 并计算 AVG
- javascript - 为什么我的代码按此顺序打印?(Javascript 承诺)