Getting user login from the PeopleEditor via Code
Assuming you have a people editor control defined like below:
<wssawc:PeopleEditor AllowEmpty=”false” ID=”myPeopleEditorControl” runat=server SelectionSet=”User” MaximumEntities=”1″ MultiSelect=”false” AllowTypeIn=”false” Width=’500px’ />
The following code sample will get you the currently logged on user’s login from the PeopleEditor control:
ArrayList peEntities = myPeopleEditorControl.Entities;
PickerEntity pickEn = (PickerEntity)peEntities[0];
stringLogIn = pickEn.Key;
This comes handy when you want to create an SPUser context out of the entities kept in the PeopleEditor control. For example:
private SPUser GetUser(string logIn)
{
SPUser user = this.workflowProperties.Web.SiteUsers[logIn];
return user;
}
Don’t forget Required Field Validation on your people editor control if you want the code not to break on you.
The code above did not work for me at least ‘as is’. Changing myPeopleEditorControl.Entities for myPeopleEditorControl.ResolvedEntities worked like magic though. I use FBA.