MOSS User Profile(一):获取和遍历

MOSS User Profile (一):获取和遍历
操作 Microsoft Office SharePoint Server 2007 User Profile 首先需要添加 3 DLL 组件的引用:
Microsoft.SharePoint
Microsoft.Office.Server
System.Web
然后就可以从 SPSite 类下的 UserProfileManager 类来进行访问了。
 
获取 User Profile 有两个方法。
一个是通过枚举场中的所有 User Profile 。另一个是获取单独的 User Profile
但是访问这些 User Profile 之前,需要在管理中心中的共享服务管理中创建好用户配置文件,其实就是在管理中心中“创建或配置此服务器场的共享服务”,创建一个共享服务管理的网站。然后用户第一次访问他们的“我的网站”时,会自动创建他们的 User Profile
在共享服务管理网站中这个位置可以查看所有的用户配置文件:
首先打开“用户配置文件和属性”。
在我的实验环境中,可以看到已经存在了6个用户配置文件了,点击下面的查看用户配置文件即可看到所有的用户配置文件。
用户配置文件列表
用户配置文件列表
下面来介绍一下如何通过对象模型来进行访问。遍历所有的用户配置文件,根据用户名找到对应的用户配置文件。
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
using System.Web;
using Microsoft.Office.Server;
using Microsoft.Office.Server.Administration;
using Microsoft.Office.Server.UserProfiles;
 
namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                using (SPSite site = new SPSite("http://mossweb:1111/sites/Publish"))
                {
                    ServerContext context = ServerContext.GetContext(site);
                    UserProfileManager profileManager = new UserProfileManager(context);
                    Console.WriteLine("All Profiles:");
                    foreach (UserProfile p in profileManager)
                    {
                        Console.WriteLine("{0} : {1}", p.ID, p.MultiloginAccounts[0]);
                    }
                    Console.WriteLine(" " );
                    string userName = @"eoffice\Administrator";
                    if (profileManager.UserExists(userName))
                    {
                        UserProfile profile = profileManager.GetUserProfile(userName);
                        Console.WriteLine("Found User Profile {0}", profile.ID);
                        Console.WriteLine("\tPersonal Site: {0} ({1})", profile.PersonalSite.RootWeb.Title, profile.PersonalSite.Url);
                    }
                    else
                    {
                        Console.WriteLine("No account found for " + userName);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.ReadLine();
        }
    }
}
 
参考资料: Sams Microsoft SharePoint 2007 Development Unleashed
 

本文出自 “努力学习的小熊” 博客,转载请与作者联系!

你可能感兴趣的:(遍历,user,获取,profile,MOSS)