Я всегда использую этот код:
SPUser user = web.EnsureUser("login");
SPFieldUserValue value = new SPFieldUserValue(web, user.ID, user.LoginName);
Если у вас есть только адрес электронной почты, вы можете использовать это:
SPUser user = web.AllUsers.GetByEmail("email");
if (user != null)
{
SPFieldUserValue value = new SPFieldUserValue(web, user.ID, user.LoginName);
}
Я не совсем уверен, возвращает ли GetByEmail нольили выдает ошибку, если пользователь не может быть найден, поэтому убедитесь, что проверили это сначала!