[方法] Web サービスを使用して 2 つのユーザー プロファイルで共通するものを見つける
ユーザー プロファイル サービスという Web サービスには、ユーザー プロファイル内の共通するマネージャ、メンバシップ、および連絡先をリモートから見つけるために使用できるメソッドがいくつか用意されています。
このコードを使用する前に、domainname と username を実際の値で置き換えてください。また、次のサービスへの Web 参照を、作業中の Microsoft Visual Studio プロジェクトに追加してください。
- Userprofileservice - この Web サービスは http://<サイトの URL>/_vti_bin/userprofileservice.asmx に配置されています。
例
using System;
using System.Collections.Generic;
using System.Text;
namespace UserProfileWebServiceApp
{
class Program
{
public static localhost.UserProfileService myService =
new localhost.UserProfileService();
static void Main(string[] args)
{
myService.Credentials =
System.Net.CredentialCache.DefaultCredentials;
FindCommonColleagues();
FindCommonManager();
FindCommonMemberships();
FindInCommon();
}
static void FindCommonColleagues()
{
UserProfileWebService.localhost.ContactData[] contacts =
myService.GetCommonColleagues("domainname\\username");
for (int i = 0; i < contacts.Length; i++)
{
Console.WriteLine(contacts[i].Name);
}
Console.Read();
}
static void FindCommonManager()
{
UserProfileWebService.localhost.ContactData contact =
myService.GetCommonManager("domainname\\username");
Console.WriteLine(contact.Name);
Console.Read();
}
static void FindCommonMemberships()
{
UserProfileWebService.localhost.MembershipData[]
memberships =
myService.GetCommonMemberships("domainname\\username");
for (int i = 0; i < memberships.Length; i++)
{
Console.WriteLine(memberships[i].DisplayName);
}
Console.Read();
}
static void FindInCommon()
{
UserProfileWebService.localhost.InCommonData incommon =
myService.GetInCommon("domainname\\username");
for (int i = 0; i < incommon.Colleagues.Length; i++)
{
Console.WriteLine(incommon.Colleagues[i].Name);
}
Console.Read();
}
}
}