目前,我有一种方法可以获取网站集中的所有用户,并将其数据绑定到下拉列表。
private void getUsers()
{
SPGroupCollection collGroups = SPContext.Current.Web.Groups;
foreach (SPGroup oGroup in collGroups)
{
foreach (SPUser oUser in oGroup.Users)
{
ddlSiteOwner.Items.Add(new ListItem(oUser.Name, oUser.ID.ToString()));
}
}
}
有没有办法让用户根据他们的guid? 我在下拉列表中选择guid作为值的用户,我想用它来搜索用户的电子邮件。
我试过像
这样的东西private string getUserEmail(string userGuid)
{
string userEmail = null;
SPGroupCollection collGroups = SPContext.Current.Web.Groups;
foreach (SPGroup oGroup in collGroups)
{
foreach (SPUser oUser in oGroup.Users.GetByID(userGuid))
{
userEmail = oUser.Email;
}
}
return userEmail;
}
但是使用GetByID它需要32位整数而不是guid所以我该如何实现呢? 提前谢谢。
编辑:看到用户现在没有guid而是sids。
答案 0 :(得分:1)
您在下拉列表中使用的SPUser.ID属性是整数,而不是guid。
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spuser.id.aspx
因此GetByID应该正常工作,只需将值解析为整数。
int.Parse()或int.TryParse()