Friday, August 1, 2014

SharePoint’s hidden user-list – User Information List

Note: This list is only visible to and accessible by administrators.
User Information List – Background
The User Information List stores information about a user by having some metadata set up for the user. Some examples are Picture, Email, DisplayName, LoginName etc. ) For a complete list of fields, see further down this blogpost under "User Information List Fields".
Something to note is that when a user is granted access to a site, a new item will be created in the User Information List storing some information about the user.
When a user add/create or edit an item, SharePoint will display something like "Last modified at 1/1/2008 by Tobias Zimmergren" like the following pic:
image
In this example the DisplayName (used to display System Account) is gathered from the User Information List
Browsing the User Information List
The User Information List can be accessed (Only if you’re admin) via the browser by navigating to /_catalogs/users/simple.aspx from your site. (Ex:http://zimmergren/_catalogs/users/simple.aspx)
This works for both Windows SharePoint Services 3.0 (WSS 3.0) and Microsoft Office SharePoint Server 2007 (MOSS 2007) and looks like this when you access it through the browser:
image
Write code to interact with the User Information List
If you want to interact with this list to set properties on a user (Probably only want to do this if you’re running WSS) you could do it like this:
// Instantiates the User Information List
SPList userInformationList = SPContext.Current.Web.SiteUserInfoList; 
// Get the current user
SPUser user = SPContext.Current.Web.EnsureUser(@"ZIMMERTobiasZimmergren");
// The actual User Information is within this SPListItem
SPListItem userItem = userInformationList.Items.GetItemById(user.ID);
The above code will give you the SPListItem object which links to the currently logged in user (the one executing the request).
You can then work with the SPListItem object like normal to get or set the properties like this:
string pictureURL = userItem["Picture"].ToString();
User Information List Fields
Instead of writing out all the fields/columns availible, you can simply create a new Console Application and insert the following code in order to output all the fields names and internalnames:
image
Note: You will ofcourse have to change the URL and User LoginName
Reference:

No comments:

Post a Comment

Image noise comparison methods

 1. using reference image technique     - peak_signal_noise_ratio (PSNR)     - SSI 2. non-reference image technique     - BRISQUE python pac...