SharePoint 2013 telah menyediakan sebuah library baru (Microsoft.SharePoint.Client.UserProfiles) yang ditujukan untuk akses user profile dengan menggunakan .net managed client object model dimana library tersebut belum tersedia pada versi SharePoint sebelumnya. Pada SharePoint 2010 untuk akses user profile salah satu alternatifnya yaitu dengan mengakses Web Services yang telah disediakan di SharePoint.
SharePoint 2010 web services dibangun dengan menggunakan asmx web services yang sudah kita kenal sejak kemunculan web service pertama kali di rilis .net framework versi 1.0. Oleh karena itu untuk memudahkan mengakses service tersebut dari visual studio harus menggunakan web services reference, bukan service reference yang menggunakan wcf.
Url sharepoint web services untuk akses user profile yaitu http://servername/_vti_bin/UserProfileService.asmx
Service tersebut menyediakan beberapa web method, salah satunya yaitu GetUserProfileByName yang membutuhkan input parameter berupa user name (tanpa nama domain) yang akan dibaca user profilenya. Properti-properti yang dikembalikan dari web method tersebut disimpan dalam array PropertyData[] sehingga untuk membaca semua nilai properti nya harus dilakukan dengan looping item array tersebut. Apabila kita ingin mengakses salah satu atau beberapa properti saja dapat dilakukan dengan akses array indexer, dan tidak dapat diakses dengan nama propertinya, oleh karena itu mengetahui indeks nya dilakukan dengan looping terlebih dahulu agar dapat mengetahui indeks dari properti yang akan dibaca.
Pada artikel kali ini akan dibuat sebuah Windows Form Application. Project tersebut untuk contoh ini menggunakan visual studio 2013 dan c# sebagai bahasa pemrogramannya. Tentunya kita dapat menggunakan visual studio 2010, atau visual studio 2015 dan bahasa visual basic. Berikut ini adalah langkah-langkahnya:
1. Akses url user profile sharepoint web services.

2. Buat sebuah Windows Form Application project.
3. Tambahkan kontrol button dan listbox ke dalam form.
4. Klik kanan project dan pilih menu Add – Service Reference
5. Klik button Advanced.

6. Klik button Add Web Reference.

7. Masukkan url user profile service.

Masukkan user name dan password untuk akses service.
8. Ubah nama web reference jika dibutuhkan dan klik button Add Reference.

9. Jika berhasil, maka di project tersebut akan muncul node Web References.

10. Ketikkan kode berikut ini di dalam form code editor.
using usp = GetUserProfileServices.UserProfileServiceReference;
namespace GetUserProfileServices
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void ReadUserProfile()
{
usp.UserProfileService uspSvc =
new usp.UserProfileService();
System.Net.NetworkCredential netCred =
new System.Net.NetworkCredential(
"UserNameForConnectingToWebService",
"Password");
uspSvc.Credentials = netCred;
usp.PropertyData[] userProps;
userProps = uspSvc.GetUserProfileByName(
"UserNameToSearch");
listBox1.Items.Clear();
for (int i = 0; i < userProps.Length; i++)
{
listBox1.Items.Add("Property-" + i + " : " +
userProps[i].Name);
for (int j = 0; j < userProps[i].Values.Length; j++)
{
listBox1.Items.Add(new string
(Convert.ToChar("-"), 10)
+ "Property-" + i + ", " + "Value-" + j + " : "
+ userProps[i].Values[j].Value);
}
}
}
private void button1_Click(object sender, EventArgs e)
{
try
{
ReadUserProfile();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
11. Jalankan aplikasi. Hasilnya dapat dilihat seperti pada gambar berikut ini:
