[方法] ユーザー プロファイル ストアでユーザー プロファイルを作成する
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 は、ユーザーの優先する名前を示す追加の文字列パラメータを取る、ユーザー プロファイル作成用のオーバーロードされたメソッドを提供しています。このメソッドを使用して、ユーザー プロファイル作成時に、ユーザーに別々の優先する名前を容易に提供できます。 2 つ目のコード例は、ユーザーの優先する名前をオーバーライドする方法、および携帯電話番号のプロパティを上書きする方法を示します。
コード例を実行する前に、servername、domainname、preferredname、username、およびnnnnnnnnnn を実際の値に置き換えます。
また、Microsoft Visual Studio プロジェクトで以下の参照を追加してください。
Microsoft.Office.Server
Microsoft.SharePoint
System.Web
例
この例は、サーバー上で構成されているマスタ接続からユーザー プロファイルを作成します。正常に実行されると、「User profile created」というメッセージが表示されます。
//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());
}
}
}
}
この例は、ユーザーの優先する名前をオーバーライドし、さらに携帯電話番号のプロパティも上書きします。正常に実行されると、「User profile created」というメッセージが表示されます。
//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());
}
}
}
}