gpt4 book ai didi

c# - 使用部分名称搜索 UserPrincipal

转载 作者:太空宇宙 更新时间:2023-11-03 10:41:56 25 4
gpt4 key购买 nike

在开始之前,我想说明一下,我可以使用 DirectoryServices 命名空间来执行此操作。我只想知道如何不使用 DirectoryServices 来解决我的以下问题。

我想做的是使用 DirectoryServices.AccountManagement.UserPrincipal类以部分名称搜索用户帐户。问题是,我想获得以下属性:EmailAddress、GivenName、MiddleName、SurName 等。注意:我要查找的所有属性都在 UserPrincipal 中公开。这是一个使用 UserPrincipal 而不进行部分名称搜索的示例。

        using (UserPrincipal user = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, userName))
{
return user;
}

根据我读过的教程,我可以使用以下代码进行部分名称搜索:

        using (UserPrincipal user = new UserPrincipal(ctx))
{
user.SamAccountName = String.Format("*{0}*", userName);

using (PrincipalSearcher searcher = new PrincipalSearcher())
{
searcher.QueryFilter = user;
return searcher.FindAll();
}
}

问题是当我遍历 PrincipalSearcher 集合(搜索器)时,它属于 Principal数据类型。 Principal 数据类型不包含我上面提到的任何属性。

所以我的问题是,如何使用 UserPrincipal 进行部分名称搜索并获取未在 Principal 数据类型中公开的属性?或者这是不可能的?

最佳答案

您不能将 Principal 对象转换为 UserPrincipal 对象吗?可能会捕捉到无效的转换。

    return searcher.FindAll().Cast<UserPrincipal>();

Principal好像是一个抽象基类 http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.principal(v=vs.110).aspx

关于c# - 使用部分名称搜索 UserPrincipal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25022799/

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