如何:在用户配置文件存储中创建用户配置文件
在 Microsoft Office SharePoint Server 2007 中创建用户配置文件类似于在 Microsoft Office SharePoint Portal Server 2003 中创建用户配置文件。除非配置不同,否则 Office SharePoint Server 2007 将自动检测域控制器并从 Active Directory 目录服务导入用户信息。但是,您可以将数据源配置设置配置为从 Active Directory 的宿主域控制器、LDAP 服务器或业务数据目录进行导入。第一个代码示例从服务器上配置的主连接创建用户配置文件。
有时,在从 Active Directory 或 LDAP 服务器导入其他属性时,您可能希望用户配置文件存储中的某些属性具有不同的值。Office SharePoint Server 2007 提供了一种超载方法,用于创建采用额外字符串参数来表示用户的首选名称的用户配置文件。该方法使您可以在创建用户配置文件时轻松地为用户提供不同的首选名称。第二个代码示例向您演示了如何替代用户的首选名称,并同时替代手机号码属性。
运行代码示例之前,将 servername、domainname、preferredname、username 和 nnnnnnnnnn 替换为实际的值。
另外在您的 Microsoft Visual Studio 项目中添加以下引用:
Microsoft.Office.Server
Microsoft.SharePoint
System.Web
示例
此示例从服务器上配置的主连接创建用户配置文件。成功执行后,将显示消息“已创建用户配置文件”。
//Example #1
//Creates a user profile. Obtains the property values from the default
//domain controller or the master connection that is configured on the
//server
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint.Administration;
using Microsoft.Office.Server.UserProfiles;
using Microsoft.SharePoint;
using Microsoft.Office.Server;
using System.Web;
namespace UserProfilesConsoleApp
{
class Program
{
static void Main(string[] args)
{
try
{
using (SPSite site = new SPSite("https://servername"))
{
ServerContext context =
ServerContext.GetContext(site);
UserProfileManager profileManager = new
UserProfileManager(context);
string sAccount = "domainname\\username";
if (!profileManager.UserExists(sAccount))
{
UserProfile profile = profileManager.CreateUserProfile(sAccount);
if (null == profile)
throw new Exception("Failed to Create User with account :" + sAccount);
else
Console.WriteLine("User profile created.");
}
else
Console.WriteLine("User profile already exists.");
}
}
catch (UserNotFoundException exception)
{
Console.WriteLine(exception.ToString());
}
}
}
}
此示例将替代用户的首选名称并覆盖手机号码属性。成功执行后,将显示消息“已创建用户配置文件”。
//Example #2
//Creates a user profile. Obtains the property values from the default
//domain controller or the master connection that is configured on the
//server.
//Also overwrites the Preferred Name and the Cell Phone property for the user.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint.Administration;
using Microsoft.Office.Server.UserProfiles;
using Microsoft.SharePoint;
using Microsoft.Office.Server;
using System.Web;
namespace UserProfilesApp
{
class Program
{
static void Main(string[] args)
{
try
{
using (SPSite site = new SPSite("https://servername"))
{
ServerContext context = ServerContext.GetContext(site);
UserProfileManager profileManager = new UserProfileManager(context);
UserProfile u = null;
string sAccount = "domainname\\username";
string sPrefered = "preferedname";
if (!profileManager.UserExists(sAccount))
{
u = profileManager.CreateUserProfile(sAccount, sPrefered);
u[PropertyConstants.CellPhone].Value = "nnnnnnnnnn";
u.Commit();
if (null == u)
throw new Exception("Failed to Create User with account :" +
sAccount);
else
Console.WriteLine("User profile created.");
}
else
Console.WriteLine("User profile already exists.");
}
}
catch (UserNotFoundException exception)
{
Console.WriteLine(exception.ToString());
}
}
}
}