3

我正在通过 SharePoint Web 服务从多个网站集中检索用户信息。

http://mysitecollection.com/_vti_bin/usergroup.asmx

使用“GetAllUserCollectionFromWeb”方法返回网站集的所有用户。

下面的 XML 是返回内容的示例。

<Users>
    <User 
        ID="108" 
        Sid="S-1-5-21-1650336054-1974872081-316617838-5403" 
        Name="Ian Curtis" 
        LoginName="JOY\division" 
        Email="ian.curtis@joydivision.com" 
        Notes="" 
        IsSiteAdmin="False" 
        IsDomainGroup="False" />
</Users>

我的问题是这个。

我从 Lists Web 服务中获取了一个列表项,其中一个字段是 Person 列。信息以 Id;#Name 的格式存储

在某些情况下,该字段的 ID 在为该网站集返回的用户中不存在,那么 ID 来自哪里?它来自用户配置文件存储吗?

我还注意到,从 UserGroup Web 服务返回的用户 ID 在同一用户的不同站点集合中是不同的(即相同的登录名)。

如果用户配置文件同步正在运行,这些是否相同?

4

1 回答 1

2

在某些情况下,该字段的 ID 在为该网站集返回的用户中不存在,那么 ID 来自哪里?它来自用户配置文件存储吗?

当用户从 AD 中删除时,或者当您将内容导入到该用户不再存在的站点或场时,我就会发生这种情况。我猜这个人的价值是无效的。请记住,人员字段只是用户信息列表的查找字段。要让用户回来(如果他们存在)使用 EnsureUser 方法,但他们会得到一个新的 id,所以你必须修复它。

我还注意到,从 UserGroup Web 服务返回的用户 ID 在同一用户的不同站点集合中是不同的(即相同的登录名)。如果用户配置文件同步正在运行,这些是否相同?

这是正确的,每个网站集的用户 ID 不同。这有点烦人,但很有意义,因为否则您将不得不在所有网站集中创建所有用户。我相信用户配置文件同步会查看帐户名称或 sid 来进行匹配和更新。

于 2011-02-15T11:30:28.803 回答