MOSS2010 客户端对象模型开发(二)
2012-08-31 13:09 温森特 阅读(387) 评论(1) 编辑 收藏 举报本篇将讲述MOSS2010客户端对象模型获取用户信息的方法,我们在服务器端开发的时候,如果想得到用户的信息,一般我们需要调用 UserProfileManager 类进行读取和操作,但是,查遍了MOSS2010的SDK,客户端对象模型里面,没有这个类或者相似的方法。后来从研究了一番,发现MOSS2010客户端得到用户的信息其实更加的简便,我们只需调取用户信息列表SiteUserInfoList就可以了,然后用CAML进行查询。
using (ClientContext client = new ClientContext(url))
{
NetworkCredential credentials = new NetworkCredential(UserName, UserPassword, Functions.GetAppSeetingValueByKey("Domain_Name"));
client.Credentials = credentials;
List userInformationList = client.Web.SiteUserInfoList;
CamlQuery camlQueryForUser = new CamlQuery();
camlQueryForUser.ViewXml = String.Format(@"<View><Query><Where><Eq><FieldRef Name='Name'/><Value Type='Text'>{1}\{0}</Value></Eq></Where></Query></View>", UserName, Functions.GetAppSeetingValueByKey("Domain_Name"));
ListItemCollection listItems = userInformationList.GetItems(camlQueryForUser);
client.Load(listItems);
client.ExecuteQuery();
if (listItems.Count > 0)
{
dt.Rows.Add("1", "姓名", UtilityPlus.GetItemString(listItems[0].FieldValues["Title"]));
dt.Rows.Add("2", "登录账号", UtilityPlus.GetItemString(listItems[0].FieldValues["Name"]));
dt.Rows.Add("3", "所属部门", UtilityPlus.GetItemString(listItems[0].FieldValues["Department"]));
dt.Rows.Add("4", "移动电话", UtilityPlus.GetItemString(listItems[0].FieldValues["MobilePhone"]));
dt.Rows.Add("5", "电子邮件", UtilityPlus.GetItemString(listItems[0].FieldValues["EMail"]));
}
}
{
NetworkCredential credentials = new NetworkCredential(UserName, UserPassword, Functions.GetAppSeetingValueByKey("Domain_Name"));
client.Credentials = credentials;
List userInformationList = client.Web.SiteUserInfoList;
CamlQuery camlQueryForUser = new CamlQuery();
camlQueryForUser.ViewXml = String.Format(@"<View><Query><Where><Eq><FieldRef Name='Name'/><Value Type='Text'>{1}\{0}</Value></Eq></Where></Query></View>", UserName, Functions.GetAppSeetingValueByKey("Domain_Name"));
ListItemCollection listItems = userInformationList.GetItems(camlQueryForUser);
client.Load(listItems);
client.ExecuteQuery();
if (listItems.Count > 0)
{
dt.Rows.Add("1", "姓名", UtilityPlus.GetItemString(listItems[0].FieldValues["Title"]));
dt.Rows.Add("2", "登录账号", UtilityPlus.GetItemString(listItems[0].FieldValues["Name"]));
dt.Rows.Add("3", "所属部门", UtilityPlus.GetItemString(listItems[0].FieldValues["Department"]));
dt.Rows.Add("4", "移动电话", UtilityPlus.GetItemString(listItems[0].FieldValues["MobilePhone"]));
dt.Rows.Add("5", "电子邮件", UtilityPlus.GetItemString(listItems[0].FieldValues["EMail"]));
}
}
您的支持,我的动力!