In this post, we’ll see how we can retrieve the current user in a SharePoint 2013 online site using client side object model (CSOM). We’ll be using a console application for the purpose of this demonstration.
Open Visual Studio 2013
File –> New Project –> C# –> Console application
Add reference to the following assemblies.
Microsoft.SharePoint.Client.dll
Microsoft.SharePoint.Client.runtime.dll
Import the following namespaces at the top of Program.cs
using Microsoft.SharePoint.Client;
using System.Security;
namespace Retrievecurrentuser { class Program { static void Main(string[] args) { using (ClientContext oClientContext = new ClientContext(@"https://yoursite.sharepoint.com")) { //Assign User Id for your SharePoint Online tenant string UserName = "userid@yoursite.onmicrosoft.com"; //Assign password for your SharePoint online tenant string Password = "password"; //Create a SecureString object from password string, needed for SharePointOnlineCredentials class SecureString SecurePassword = GetSecureString(Password); oClientContext.Credentials = new SharePointOnlineCredentials(UserName, SecurePassword); //load the properties of web object Web oWeb = oClientContext.Web; oClientContext.Load(oWeb); oClientContext.ExecuteQuery(); //retrieve the site name string SiteName = oWeb.Title; //retrieve the current user oClientContext.Load(oWeb.CurrentUser); oClientContext.ExecuteQuery(); Console.WriteLine("Login Name"+ oClientContext.Web.CurrentUser.LoginName); Console.WriteLine("Is Admin"+ oClientContext.Web.CurrentUser.IsSiteAdmin); Console.WriteLine("Email"+ oClientContext.Web.CurrentUser.Email); Console.ReadLine(); } } private static SecureString GetSecureString(String Password) { SecureString oSecurePassword = new SecureString(); foreach (Char c in Password.ToCharArray()) { oSecurePassword.AppendChar(c); } return oSecurePassword; } } }
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
Then create a clientcontext in the program.cs, load the web object (execute query) and then load the current user based on the web object.
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
Now we’ll be able to fetch the user properties like the below.