在SharePoint中编程查找用户

4
我遇到了这样一种情况,我需要通过用户的Active Directory用户名查找用户。 我尝试在SPSite.Users、SPSite.AllUsers和SPSite.SiteUsers属性中查找该用户,但无法保证该用户在任何列表中都存在。 对于通过已被授予站点权限的Active Directory组获得站点权限的用户,各种用户列表中没有该用户的列表,只有Active Directory组的记录。 是否有一种无需直接通过LDAP查询Active Directory即可在SharePoint中以编程方式查找用户的方法?
我理想地想找到一种适用于基于表单身份验证和AD身份验证的机制,但我需要找到一种适用于AD身份验证的机制。
1个回答

3

尝试使用SPWeb.EnsureUser

检查指定的登录名是否属于网站有效用户,如果登录名不存在,则添加到网站中。

该方法适用于AD和FBA。如果两者都使用,则需要使用非默认提供程序的用户名作为前缀,类似于:

SPUser webUser = web.EnsureUser("SecondaryProvider:" + userName);

1
似乎有些不合理,没有全局列表可以查询,但是在运行EnsureUser之后,用户会出现在SPSite.SiteUsers列表中。然后您可以从列表中获取SPUser对象,这正是我所需要的。 - ICodeForCoffee
@ICodeForCoffee 但是EnsureUser返回的是SPUser对象。 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接