|
我们使用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 siteList userList = clientContext.Web.SiteUserInfoList;clientContext.Load(userList);clientContext.ExecuteQuery(); Console.WriteLine(userList.ItemCount);// Get the fields of the listFieldCollection fc = userList.Fields;clientContext.Load(fc);clientContext.ExecuteQuery(); // Print fcforeach (Field field in fc){Console.WriteLine(field.InternalName);}// Get the ListItem collectionCamlQuery 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 namestring 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 adressif (alias.Length == 2){item["EMail"] = alias[1] + "@james.com";}else{item["EMail"] = alias[0] + "@james.com";}item.Update();}// submit the updateclientContext.ExecuteQuery();Console.Read();}}} |
|