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 サービスからリスト アイテムを取得しています。フィールドの 1 つは Person 列です。情報は Id;#Name の形式で保存されます

場合によっては、このフィールドからの ID が、そのサイト コレクションに対して返されるユーザーに存在しない場合があります。ID はどこから来たのでしょうか? ユーザー プロファイル ストアからですか?

また、UserGroup Web サービスから返されるユーザーの ID が、同じユーザー (つまり、同じログイン) の異なるサイト コレクション間で異なることにも気付きました。

ユーザー プロファイルの同期が実行されている場合、これらは同じでしょうか?

4

1 に答える 1

2

場合によっては、このフィールドの ID が、そのサイト コレクションに対して返されるユーザーに存在しないことがあります。ID はどこから来たのでしょうか? ユーザー プロファイル ストアからですか?

ユーザーが AD から削除されたとき、またはそのユーザーがもう存在しないサイトまたはファームにコンテンツをインポートしたときに、これが発生しました。person の値が無効だと思います。人物フィールドは、ユーザー情報リストのルックアップ フィールドにすぎないことに注意してください。ユーザーを元に戻すには (存在する場合)、EnsureUser メソッドを使用しますが、ユーザーは新しい ID を取得するため、修正する必要があります。

また、UserGroup Web サービスから返されるユーザーの ID が、同じユーザー (つまり、同じログイン) の異なるサイト コレクション間で異なることにも気付きました。ユーザー プロファイルの同期が実行されている場合、これらは同じでしょうか?

これは正しいです。ユーザー ID はサイト コレクションごとに異なります。やや面倒ですが、すべてのサイト コレクションにすべてのユーザーを作成する必要があるため、理にかなっています。ユーザー プロファイルの同期では、アカウント名または sid を参照して、照合と更新を行っていると思います。

于 2011-02-15T11:30:28.803 に答える