gpt4 book ai didi

c# - 将 UserPrincipal.FindByIdentity 和 PrincipalContext 与嵌套 OU 结合使用

转载 作者:行者123 更新时间:2023-11-30 12:12:55 24 4
gpt4 key购买 nike

这是我想要实现的目标:我有一个大约 5 层深的嵌套 OU 结构。

OU=Portal,OU=Dev,OU=Apps,OU=Grps,OU=Admin,DC=test,DC=com

我正在尝试查明用户是否具有权限/是否存在于 OU=Portal。

这是我目前拥有的片段:

PrincipalContext domain = new PrincipalContext(
ContextType.Domain,
"test.com",
"OU=Portal,OU=Dev,OU=Apps,OU=Grps,OU=Admin,DC=test,DC=com");

UserPrincipal user = UserPrincipal.FindByIdentity(domain, myusername);
PrincipalSearchResult<Principal> group = user.GetAuthorizationGroups();

由于某些未知原因,上述代码生成的值 user 始终为 null。但是,如果我按如下方式删除所有 OU:

PrincipalContext domain = new PrincipalContext(
ContextType.Domain,
"test.com",
"DC=test,DC=com");

UserPrincipal user = UserPrincipal.FindByIdentity(domain, myusername);
PrincipalSearchResult<Principal> group = user.GetAuthorizationGroups();

这会很好地工作并返回正确的用户。我只是想减少结果的数量,而不是从 AD 获取所有内容。

我做错了什么吗?我用 Google 搜索了几个小时并测试了各种组合,但运气不佳。

最佳答案

好吧,如果

UserPrincipal.FindByIdentity(context, identityType, username) == null

然后没有找到用户,在你的情况下可能是,因为用户没有在 OU 中定义=你在你的上下文中设置为容器。

关于c# - 将 UserPrincipal.FindByIdentity 和 PrincipalContext 与嵌套 OU 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12617143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com