网站开发语言版本不同,网站导航条,邢台制作网站,wordpress portfolio 插件用代码从AD读取照片信息并同步到SharePoint2010的个人照片信息中 前言 上篇我们讲到用代码实现了照片信息同步到SharePoint2010的个人照片信息中#xff0c;但是做的是从文件夹读取照片信息到SharePoint2010,今天我们要做的从AD的thumbnailPhoto属性中读取照片信息到SharePoin…用代码从AD读取照片信息并同步到SharePoint2010的个人照片信息中 前言 上篇我们讲到用代码实现了照片信息同步到SharePoint2010的个人照片信息中但是做的是从文件夹读取照片信息到SharePoint2010,今天我们要做的从AD的thumbnailPhoto属性中读取照片信息到SharePoint2010的个人照片信息中。 实现方法 前提就是AD的thumbnailPhoto属性已经存在照片建议宽度和高度为96X96AD默认图片大小。 我在这里往contoso\\test7提示此用户存在Users的OU下可以放在任何OU下都可以这个账号上传一个漂亮MM的照片如下图 上传前的照片如下 上传到AD如下注意我这里以BASE64位编码保存的所以代码需要用BASE64解码 验证下运行同步代码前MOSS2010的test7个人站点看我的配置信息也没有照片如下图 代码段 特别注意AD中的照片信息如以Base64编码保存的。那么读取来的时候需要解码否则会提示参数无效错误 附带BASE64字符表格式如下 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/ 上传核心代码段其他代码跟上篇一样http://www.cnblogs.com/love007/archive/2012/08/23/2652798.html /// summary /// 从AD同步信息到MOSS2010 /// /summary private static void UploadADPhotos() { //得到网站集合 SPSite mySites new SPSite(MySiteHostUrl); //得到网站 SPWeb myWeb mySites.OpenWeb(); SPFolder subfolderForPictures myWeb.GetFolder(User Photos\\Profile Pictures); if (subfolderForPictures null) { return; } UserProfileManager userProfileManager new UserProfileManager(SPServiceContext.GetContext(mySites)); //***********************************读取AD照片信息 DirectoryEntry de new DirectoryEntry(LDAP://DCcontoso,DCcom, contoso\\mossadmin, Passw0rd!, AuthenticationTypes.Secure); //读取AD的配置信息 DirectorySearcher search new DirectorySearcher(); search.SearchRoot de; //contoso\\test7照片信息 search.Filter ((objectClassuser)(objectCategoryperson)(sAMAccountNametest7)); search.PropertiesToLoad.Add(samaccountname); search.PropertiesToLoad.Add(thumbnailPhoto); SearchResult user; user search.FindOne(); if (user null) { return; } byte[] buffer (byte[])user.Properties[thumbnailPhoto][0]; // //***********************************读取AD照片信息 //buffer if (buffer ! null) { // string fileNameWithoutExtension GetFileNameFromAccountName(MAccountName); //把AD照片赋值给 int largeThumbnailSize 0X90; int mediumThumbnailSize 0X60; int smallThumbnailSize 0X20; //上传3张 //BASE64解码我是以64编码保存的所以需要解码当然如果没有编码不需要如下代码 //******************************************BASE64解码 string s Encoding.Default.GetString(buffer); buffer Convert.FromBase64String(s); //*******************************************BASE64解码 using (MemoryStream stream new MemoryStream(buffer)) { using (Bitmap bitmap new Bitmap(stream, true)) { CreateThumbnail(bitmap, largeThumbnailSize, largeThumbnailSize, subfolderForPictures, fileNameWithoutExtension _LThumb.jpg); CreateThumbnail(bitmap, mediumThumbnailSize, mediumThumbnailSize, subfolderForPictures, fileNameWithoutExtension _MThumb.jpg); CreateThumbnail(bitmap, smallThumbnailSize, smallThumbnailSize, subfolderForPictures, fileNameWithoutExtension _SThumb.jpg); } } SetPictureUrl(MAccountName, subfolderForPictures, userProfileManager, mySites.Url); } myWeb.Dispose(); mySites.Dispose(); } 测试结果 去个人站点下的用户配置信息看照片如下图终于看到漂亮的MM 去【图片库】-【用户照片】可以看到如下图信息 转载于:https://www.cnblogs.com/love007/archive/2012/08/24/2654307.html