When you configure User Profiles, you can get a lot of information of the SPUser. These details can also be fetched programmatically. Let me show you how to do that.
Before we get into the coding, let me first explain you about user profile properties. To check what kind of user profile properties you have in your SSP, open your SSP -> User profile and Properties -> View Profile Properties. Here it displays the list of Profile Properties. You can edit some of the properties and set some conditions like whether user should be able to edit the property or not and so on.
Let's look at the code:
1. First you should add a reference to Microsoft.Office.Server
2. Define the namespace:
using Microsoft.Office.Server;
using Microsoft.Office.Server.UserProfiles;
3. The actual code looks like this:
Here, I'm trying to get the First Name and user's Manager Name for all the profiles who exists in my SharePoint site. As shown in the above code, you can get the details of the profile using the Property Name (FirstName, Manager).
When you run the above code, you may get "Access Denied" error. To resolve this, you should ensure that the credential under which the code runs should have proper permissions. To verify that, navigate to SSP home page, under "User Profiles and My Sites", click on "Personalization services permissions". Under Manage Permissions page, ensure that the user (under that credential the above code runs) has "Manage User Profiles" and "Personal Features" rights. And you got that code working!
Before we get into the coding, let me first explain you about user profile properties. To check what kind of user profile properties you have in your SSP, open your SSP -> User profile and Properties -> View Profile Properties. Here it displays the list of Profile Properties. You can edit some of the properties and set some conditions like whether user should be able to edit the property or not and so on.
Let's look at the code:
1. First you should add a reference to Microsoft.Office.Server
2. Define the namespace:
using Microsoft.Office.Server;
using Microsoft.Office.Server.UserProfiles;
3. The actual code looks like this:
using (SPSite mySite = new SPSite("my Site URL"))
{
ServerContext context = ServerContext.GetContext(mySite);
UserProfileManager profileManager = new UserProfileManager(context);
foreach (UserProfile profile in profileManager)
{
Console.WriteLine(profile["FirstName"].Value.ToString()); //Gets First Name
Console.WriteLine(profile["Manager"].Value.ToString()); // Gets Manager's Name
}
}
Here, I'm trying to get the First Name and user's Manager Name for all the profiles who exists in my SharePoint site. As shown in the above code, you can get the details of the profile using the Property Name (FirstName, Manager).
When you run the above code, you may get "Access Denied" error. To resolve this, you should ensure that the credential under which the code runs should have proper permissions. To verify that, navigate to SSP home page, under "User Profiles and My Sites", click on "Personalization services permissions". Under Manage Permissions page, ensure that the user (under that credential the above code runs) has "Manage User Profiles" and "Personal Features" rights. And you got that code working!
Comments
Post a Comment