Raghu's SharePoint Corner: SPUser Detail from Person-Group Field from SharePoint List

My blog has moved!

You will be automatically redirected to the new address. If that does not occur, visit
http://www.sharepointcolumn.com
and update your bookmarks.

May 12, 2009

SPUser Detail from Person-Group Field from SharePoint List

SPUser Detail from Person-Group Field from SharePoint List
Recently while working on custom timer job I ran into a scenario where I need SPUser detail for sending mail from the Person/Group Field value in the SharePoint list. Initially while doing this it would be very simple just by typecasting it, but it doesn’t seem to work.

After reading few article I came to conclusion that to create a SPUser from the value present in the Person/Group field, first we need to create a SPFieldUser object and get the required Field instance and assign to this object, next create a SPFieldUser Value object and assign the value using the GetFieldValue method of the SPFieldUser object. Finally Create a SPUser object and assign user value from the SPFieldUserValue.User.

The complete code snippet for the above logic is given below


SPFieldUser userField = (SPFieldUser)site.Lists["Gifts"].Fields.GetField("AccountOwner");
SPFieldUserValue fieldValue = (SPFieldUserValue)userField.GetFieldValue(item["AccountOwner"].ToString());
SPUser user = fieldValue.User;

string emailId = user.Email;