Get and Set User Profile Properties using Console Application in SharePoint Online
File -> New -> Project -> Installed -> Templates -> Visual C# -> Windows -> Console Application ->Enter Name (UserProfilePropertySync)
Go to UserProfilePropertySync -> References -> Add Referece
Add below three dlls. Make sure add 16 version dlls.
using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.Runtime;
using Microsoft.SharePoint.Client.UserProfiles;
Make sure here we are adding 16th version dlls.
Go to UserProfilePropertySync -> Open Program.cs
add below code
-------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security;
using System.Net;
using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.UserProfiles;
namespace UserProfilePropertySync
{
class Program
{
static void Main(string[] args)
{
try
{
string tenantAdminUrl = GetString("Enter
your tenant admin url (https://tenantname-admin.sharepoint.com): ");
string tenantAdminUser = GetString("Enter your tenant admin user
(user@tenantname.onmicrosoft.com): ");
PersonProperties personProperties = null;
SecureString tenantAdminPassword = GetPassword();
string userToUpdate = "i:0#.f|membership|" + tenantAdminUser;
using (ClientContext clientContext = new ClientContext(tenantAdminUrl))
{
clientContext.Credentials =
new SharePointOnlineCredentials(tenantAdminUser,
tenantAdminPassword);
PeopleManager
peopleManager = new PeopleManager(clientContext);
string userProfileProperty
= "AboutMe";
personProperties = peopleManager.GetPropertiesFor(userToUpdate);
clientContext.Load(personProperties, p => p.UserProfileProperties);
clientContext.ExecuteQuery();
foreach (var property in
personProperties.UserProfileProperties)
{
if (property.Key ==
userProfileProperty)
Console.WriteLine("Current value of the {0} property for user
{1}:{2}", userProfileProperty,
userToUpdate, property.Value.ToString());
}
string newAboutMeValue =
GetString(String.Format("Enter a new value to be set for property {0}:", userProfileProperty));
Console.WriteLine("Setting new value...");
peopleManager.SetSingleValueProfileProperty(userToUpdate,
userProfileProperty, newAboutMeValue);
personProperties =
peopleManager.GetPropertiesFor(userToUpdate);
clientContext.Load(personProperties, p => p.UserProfileProperties);
clientContext.ExecuteQuery();
foreach (var property in
personProperties.UserProfileProperties)
{
if (property.Key ==
userProfileProperty)
{
Console.WriteLine("Current value of the {0} property for user
{1}:{2}", userProfileProperty,
userToUpdate, property.Value.ToString());
}
}
}
Console.WriteLine("Press any
key to continue.");
Console.Read();
}
catch (Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(string.Format("Exception!"), ex.ToString());
Console.WriteLine("Press any
key to continue.");
Console.Read();
throw;
}
}
public static string GetString(string question)
{
string userInput = string.Empty;
try
{
Console.Write(question);
userInput = Console.ReadLine();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
userInput = string.Empty;
}
return userInput;
}
public static SecureString GetPassword()
{
SecureString sStrPwd = new SecureString();
try
{
Console.Write("Enter the
SharePoint Tenant Admin password: ");
for (ConsoleKeyInfo keyInfo = Console.ReadKey(true); keyInfo.Key != ConsoleKey.Enter; keyInfo = Console.ReadKey(true))
{
if (keyInfo.Key == ConsoleKey.Backspace)
{
if (sStrPwd.Length > 0)
{
sStrPwd.RemoveAt(sStrPwd.Length - 1);
Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
Console.Write(" ");
Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
}
}
else if (keyInfo.Key != ConsoleKey.Enter)
{
Console.Write("*");
sStrPwd.AppendChar(keyInfo.KeyChar);
}
}
Console.WriteLine("");
}
catch (Exception e)
{
sStrPwd = null;
Console.WriteLine(e.Message);
}
return sStrPwd;
}
}
}
-------------------------------------------------------------
Press F5 to run and enter required input.





ReplyDeleteBilgisayar ve telefon kullanıcılarının en çok aradığı şeylerden biri de yeni ve eğlenceli oyunlar olmaktadır. Bu nedenle, istediğiniz oyunu kolayca bulup indirmeniz için önerim, oyun indir sitesini ziyaret etmenizdir. Güncel ve güvenilir içerikleriyle dikkat çeken bu platform sayesinde zaman kaybetmeden oynamaya başlayabilirsiniz. Herkesin zevkine uygun oyunlar burada sizi bekliyor. Keyifli vakitler geçirmeniz dileğiyle.