代码改变世界

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

  温森特  阅读(392)  评论(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"]));
                }               
            }
复制代码


编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示