如果我有用户guid,以编程方式获取用户电子邮件? (的SharePoint)

时间:2011-01-17 02:38:35

标签: sharepoint

目前,我有一种方法可以获取网站集中的所有用户,并将其数据绑定到下拉列表。

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。

1 个答案:

答案 0 :(得分:1)

您在下拉列表中使用的SPUser.ID属性是整数,而不是guid。

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spuser.id.aspx

因此GetByID应该正常工作,只需将值解析为整数。

int.Parse()或int.TryParse()