使用 SharePoint 2010 Client Object Model 修改用户Email(邮箱) 地址

来源:互联网 发布:直销软件系统 编辑:程序博客网 时间:2024/05/21 11:10

 我们使用SharePoint 2010 时,有时需要修改用户Email(邮箱) 地址,但是People and Groups 这个列表里面不允许我们修改。

本文介绍如何使用 Client Object Model 来修改用户Email(邮箱) 地址。

关于如何使用Moss 2010 Client Object Model,请参考 http://msdn.microsoft.com/en-us/library/ee857094.aspx#Y5816

using System;using System.Collections.Generic;using System.Linq;using System.Text;using Microsoft.SharePoint.Client;namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            // init the ClientContext, please replace the website url with the moss 2010 site url you want to access             string siteUrl = "http://ccpc";            ClientContext clientContext = new ClientContext(siteUrl);            // Get the user info list of the web site            List userList = clientContext.Web.SiteUserInfoList;            clientContext.Load(userList);            clientContext.ExecuteQuery();             Console.WriteLine(userList.ItemCount);            // Get the fields of the list            FieldCollection fc = userList.Fields;            clientContext.Load(fc);            clientContext.ExecuteQuery();             // Print fc            foreach (Field field in fc)            {                Console.WriteLine(field.InternalName);            }            // Get the ListItem collection            CamlQuery camlQuery = new CamlQuery();            camlQuery.ViewXml = @"<View> </View>";            ListItemCollection itemList = userList.GetItems(camlQuery);            // Only load the two fields(EMail and Name)            clientContext.Load(itemList,             items => items                 .Include(                     item => item["EMail"],                     item => item["Name"]));            clientContext.ExecuteQuery();            // Print the email and user name            string messageTemplate = "Name ={0}, Email = {1}";            foreach (ListItem item in itemList)            {                string[] alias= item["Name"].ToString().Split("\\".ToCharArray());                Console.WriteLine(string.Format(messageTemplate, item["Name"], item["EMail"]));                // Update the user email, replace the james.com with your owner mail server adress                if (alias.Length == 2)                {                    item["EMail"] = alias[1] + "@james.com";                }                else                {                    item["EMail"] = alias[0] + "@james.com";                }                item.Update();            }            // submit the update            clientContext.ExecuteQuery();            Console.Read();        }    }}


 

原创粉丝点击