MOSS2010 客户端对象模型开发(二)

本篇将讲述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"]));
                }               
            }


原文地址:https://www.cnblogs.com/luking/p/2665126.html