首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用部分名称搜索UserPrincipal

使用部分名称搜索UserPrincipal
EN

Stack Overflow用户
提问于 2014-07-30 02:46:34
回答 1查看 1.9K关注 0票数 4

在开始之前,我想说明一下,我可以使用DirectoryServices名称空间来实现这一点。我只想知道如何在不使用DirectoryServices的情况下实现我的以下问题。

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

代码语言:javascript
复制
        using (UserPrincipal user = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, userName))
        {
            return user;
        }

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

代码语言:javascript
复制
        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进行部分名称搜索并获取未在主体数据类型中公开的属性?或者这是不可能的?

EN

回答 1

Stack Overflow用户

发布于 2014-07-30 02:59:56

不能将主体对象转换为UserPrincipal对象吗?也许可以捕获无效的强制转换。

代码语言:javascript
复制
    return searcher.FindAll().Cast<UserPrincipal>();

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25022799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档