none
SharePoint 2010 关于用户信息列表的问题 RRS feed

  • 问题

  • SharePoint 2010一个隐藏的列表叫用户信息列表,访问路径如下 :

    http://<SiteCollectionUrl>/_catalogs/users/detail.aspx

    从这里可以轻易的得到从AD里添加到sharepoint站点里的用户信息 ,比如 职位,部门,邮件等。之前获取这些信息都是直接从AD里或UserProfile里读。

    现在的问题是,从用户信息列表里读取的用户信息,怎么判断它属于哪一个组,或者说我想获取某一个组内的所有用户信息。请不要说让我根据某些信息将得到的用户转成spuser对象,然后判断组,我觉得这性能不好。

    另外如果可以,请帮忙解释一下,微软是怎么做的点击组名,列出组内成员的。我反编译过自己找到的dll,没发现有用信息。


    专注moss

    2012年6月15日 7:02

答案

  • 你好 四毛,

    SharePoint中一个用户有可能对应多个组,最好的方式还是通过转换成SPUser来实现,至少我现在还没有发现比这个更好的方式,请参看下面的链接:
    http://stackoverflow.com/questions/4314767/getting-members-of-an-ad-domain-group-using-sharepoint-api

    至于你所说的性能方面,虽然会有些性能损耗,但是信息量不是非常大的情况下,是没有明显区别的。假如数据量很大的话,即使直接读取AD或UserProfile来获取数据,依然很耗费时间,那么你可以对数据进行预处理(例如:通过服务,定时更新详细信息到一张自定义的数据表中,然后直接获取。还有设置缓存之类的,等等...)

    下面链接提供了一些关于此类操作的一些通用函数,你可以参考一下:
    https://forums.asp.net/t/1012092.aspx/1

    谢谢,

    2012年6月18日 8:15
    版主