SharePoint Client Browser v1.2, get it while it’s hot!

The release is out since January 13th, but didn’t got the time to write about it. I have released a new version of the SharePoint Client Browser 2013 (#SPCB). It supports new nodes like associated Visitor, Member and Owner groups of a web object and showing the User Custom Actions for site, web and list object.

But the biggest investment is around User Profiles! Check out this post below.

Enjoy this new version of the SharePoint Client Browser and show your gratitude by adding a review on this page. Download can be found here.

SharePoint Client Browser - Main Screen - v1.2

User Profiles support improved!

The biggest update is within the User Profile area. Version 1.1 was limited to only showing the current user’s properties and peers.

SharePoint Client Browser v1.1 support for User Profiles

The new version shows not only the current user, but retrieves other users via the Search CSOM and retrieves their data as well.

SharePoint Client Browser v1.2 extended support for User Profiles

As shown above not only the User Profile properties and Peers are loaded, but lots of new properties is loaded as well allowing to create rich applications who use the User Profile data. Support is based on the Microsoft.SharePoint.Client.UserProfiles namespace and contains per user profile the following information:

  • User Profile properties
  • Peers
  • Direct Reports
  • Extended Managers
  • Extended Reports
  • Followed Tags (only current user)
  • Followers
  • Suggestions (only current user)
  • People Followed by User

Download SharePoint Client Browser

 Download the SharePoint 2013 Client Browser v1.2 here!

Enjoy this new version of the SharePoint Client Browser and show your gratitude by adding a review on this page.

SharePoint 2013 Client Browser: Now support for Taxonomy and User Profiles

It’s been around 2 months since the last release of the SharePoint 2o13 Client Browser but work has progressed! Today I updated the tool with two new features.

  • Taxonomy support by showing the hierarchy of Term Store, Groups, Term Sets and Terms.
  • Limited support for User Profiles by showing the User Profile of the current user with the related properties and peers.

Download the SharePoint 2013 Client Browser here!

Taxonomy

By using the Microsoft.SharePoint.Client.Taxonomy namespace it’s possible to get the complete hierarchy of the Term Store and even manipulate it.

SharePoint 2013 Client Browser showing the Taxonomy

User Profiles

Next to the Taxonomy SharePoint 2013 client object model is extended with the Microsoft.SharePoint.Client.UserProfiles namespace for interaction with the User Profiles. For now I only included the current user profile. Future releases will be extended with other properties and showing more user profiles of other users within the environment.

SharePoint 2013 Client Browser showing the User Profile of the current user

When setting the MySiteHostUrl I get a UserProfileApplicationNotAvailableException

When I’m trying to set the MySiteHostUrl via PowerShell it throws an error. Taking a closer look it seems after initializing the UserProfileManager class an UserProfileApplicationNotAvailableException is raised.

The exception you receive is

New-Object : Exception calling ".ctor" with "1" argument(s): "UserProfileApplicationNotAvailableException_Logging :: UserProfileApplicationProxy.ApplicationProperties ProfilePropertyCache does not have 458839b6-4979-413a-a7a3-41d8564faea3"

The PowerShell script I’m using is retrieving the current context and initializing the UserProfileManager object. This should provide me access to the MySiteHostUrl.

Add-PSSnapin Microsoft.SharePoint.PowerShell -ea 0 $site = Get-SPSite “http://my.contoso.com” $context = Get-SPServiceContext($site) $upm = New-Object -TypeName Microsoft.Office.Server.UserProfiles.UserProfileManager -ArgumentList $context $upm.MySiteHostURL = “http://my.contoso.com”

The solution to this is providing the account running the PowerShell script sharing permissions “Full Control” on the User Profile Service Application.

  • Open Central Administration
  • Click Service Applications
  • Select “User Profile Service Application”
  • Click in ribbon the Permissions button
  • Add account which is running PS script, in this example “xxx-spinstall”
  • Select “Full Control” and click OK
  • Run the PS-script again!

Permissions User Profile Application

Access Denied errors in content source for People Search

Having issues with indexing the user profiles? Getting Access Denied error messages in the crawl log for sps3://my.sharepoint.com? Are these looking like the one below?

Access is denied. Verify that either the Default Content Access Account has access to this repository, or add a crawl rule to crawl this repository. If the repository being crawled is a SharePoint repository, verify that the account you are using has "Full Read" permissions on the SharePoint Web Application being crawled. ( HttpStatusCode Unauthorized The request failed with HTTP status 401: Unauthorized. )

This most likely has to do with the default content access account not having access to the user profile service application. The default content access account needs “Retrieve People Data for Search Crawlers” permissions on the user profile service application.

Search error message Access Denied

Solving this is rather easy. See steps below:

  1. Navigate to the Central Administration
  2. Click on Manage Service Applications
  3. Select the “User Profile Service Application” (note: do not click the name of the service application, because you will be redirected to management page)
  4. Click in the ribbon on the Administrators button
  5. Add the “Default content access account” to the accounts list
  6. Select the “Default content access account” in the list
  7. Check the “Retrieve People Data for Search Crawlers” permission
  8. Click OK

Administrators dialog for User Profile Service Application

Default User Profile properties

In my previous post Retrieve User Profile information and display all properties in simple webpart I provided a web part showing all user profile properties and values of a user account.

Today I needed the out-of-the-box (OOB) list of all profile properties. Below the full list of all properties.

[Update: link to TechNet article Default user profile properties (SharePoint Server 2010) and Default user profile property mappings (SharePoint Server 2010)]

Displayname Name Value
Section: Basic Information
Id UserProfile_GUID
SID SID
Active Directory Id ADGuid
Account name AccountName
First name FirstName
Phonetic First Name SPS-PhoneticFirstName
Last name LastName
Phonetic Last Name SPS-PhoneticLastName
Name PreferredName
Phonetic Display Name SPS-PhoneticDisplayName
Work phone WorkPhone
Department Department
Title Title
Job Title SPS-JobTitle
Manager Manager
About me AboutMe
Personal site PersonalSpace
Picture PictureURL
User name UserName
Quick links QuickLinks
Web site WebSite
Public site redirect PublicSiteRedirect
Data source SPS-DataSource
MemberOf SPS-MemberOf
Dotted-line Manager SPS-Dotted-line
Peers SPS-Peers
Ask Me About SPS-Responsibility
SIP Address SPS-SipAddress
My Site Upgrade SPS-MySiteUpgrade
Don’t Suggest List SPS-DontSuggestList
Proxy addresses SPS-ProxyAddresses
Hire date SPS-HireDate
Display Order SPS-DisplayOrder
Claim User Identifier SPS-ClaimID
Claim Provider Identifier SPS-ClaimProviderID
Claim Provider Type SPS-ClaimProviderType
Last Colleague Added SPS-LastColleagueAdded
Outlook Web Access URL SPS-OWAUrl
Saved Account Name SPS-SavedAccountName
Saved SID SPS-SavedSID
Resource Forest SID SPS-ResourceSID
Resource Forest Account Name SPS-ResourceAccountName
Object Exists SPS-ObjectExists
Master Account Name SPS-MasterAccountName
Distinguished Name SPS-DistinguishedName
Source Object Distinguished Name SPS-SourceObjectDN
Last Keyword Added SPS-LastKeywordAdded
Section: Contact Information
Work e-mail WorkEmail
Mobile phone CellPhone
Fax Fax
Home phone HomePhone
Office Office
Office Location SPS-Location
Time Zone SPS-TimeZone
Assistant Assistant
Section: Details
Past projects SPS-PastProjects
Skills SPS-Skills
Schools SPS-School
Birthday SPS-Birthday
Status Message SPS-StatusNotes
Section: Delegation
Section: Newsfeed Settings
Interests SPS-Interests
Email Notifications SPS-EmailOptin
Section: Custom Properties

Retrieve User Profile information and display all properties in simple webpart

When working with User Profiles I want an overview of all user profile properties and the contents of a particular user. This information can be retrieved from the Central Administration. The downside of this is you can either view the profile properties or the user profile. But I am looking for the display name, technical name and the value for a particular user.

User Profile WebPart

This can be achieved by developing a webpart which loops the user profile properties and retrieves per property the value of an user profile. The user profile which is displayed can be set in the webpart properties pane.

User Profile WebPart - Property Pane

The C# code which drives the webpart is shown below. It is pretty straight forward and shows only the retrieval of the user profile properties and values of the user profile.

System.Security.PermissionSet ps = new System.Security.PermissionSet(System.Security.Permissions.PermissionState.Unrestricted); ps.Assert(); Microsoft.SharePoint.SPServiceContext serviceContext = Microsoft.SharePoint.SPServiceContext.Current; UserProfileManager upm = new Microsoft.Office.Server.UserProfiles.UserProfileManager(serviceContext); ProfileSubtypePropertyManager pspm = upm.DefaultProfileSubtypeProperties; UserProfile profile = upm.GetUserProfile("CONTOSO\AaronP"); this.Controls.Add(new Literal() { Text = "<table border='0' > <tr><td>Displayname</td><td>Name</td><td>Value</td></tr>" }); foreach (ProfileSubtypeProperty prop in pspm.PropertiesWithSection) { if (prop.IsSection) this.Controls.Add(new Literal() { Text = string.Format("<tr><td colspan='3'><b>Section: {0}</b></td></tr>", prop.DisplayName) }); else { string text = string.Format("<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>", prop.DisplayName, prop.Name, profile[prop.Name].Value); this.Controls.Add(new Literal() { Text = text }); } } this.Controls.Add(new Literal() { Text = "</table>" });

DownloadYou can download the WSP package and source code at http://sp2010userprofilewp.codeplex.com/.