[方法] メンバシップを作成する

Microsoft Office SharePoint Server 2007 では、配布リスト (DL) メンバシップと Windows SharePoint Services サイト メンバシップの 2 種類のメンバシップがサポートされます。DL メンバシップ情報は Active Directory ディレクトリ サービスから取得され、Windows SharePoint Services サイト メンバシップ情報は SharePoint サイトからメンバシップ情報を得ることによって取得されます。プロファイル ページと呼ばれる、ユーザーの個人用サイトのパブリック ページには、ユーザーのメンバシップのほか、ユーザーと表示側ユーザーが共通して持つメンバシップなどの情報が表示されます。

ユーザー プロファイル オブジェクト モデルは、新しいメンバシップ機能をサポートするクラスおよびメソッドを追加します。ユーザー プロファイル オブジェクト モデルの新しいクラスおよびメソッドでは、次の操作がサポートされます。

  • ユーザーのメンバシップを取得する

  • ユーザーのメンバシップのプライバシー設定を設定する

  • 2 ユーザー間の共通メンバシップを取得する

  • メンバ グループを列挙する

  • 新しいメンバシップの種類を拡張し、オブジェクト モデルで新しいメンバシップを追加できるようにする

Membership は、ユーザー プロファイル オブジェクト モデルのファースト クラス オブジェクトです。UserProfile オブジェクトからメンバシップにアクセスできます。

MemberGroup オブジェクトは、DL または Windows SharePoint Services サイト、あるいはオブジェクト モデルを使用して作成するその他の新しいメンバ グループを定義します。定義する URL プロパティは、DL の場合はアーカイブ場所 (mailto: リンク) を表し、MemberGroup オブジェクトの場合は Windows SharePoint Services サイトの URL を表します。SourceReference プロパティは、Active Directory からの DL の DirectoryEntry、あるいは MemberGroup に応じて SPWeb または SPSite オブジェクトを返します。

UserProfileManager クラスは、メンバ グループ定義を返して新しいメンバシップの種類を作成するメソッドを追加します。

次の例では、新しいメンバ グループを作成し、新しく作成したグループにメンバを追加します。このコード例を使用する前に、servername、domainname、username、およびその他のプレースホルダを実際の値に置き換えてください。また、Microsoft Visual Studio プロジェクトで以下の参照を追加してください。

  • Microsoft.Office.Server

  • Microsoft.SharePoint

  • System.Web

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Server;
using Microsoft.Office.Server.Administration;
using Microsoft.Office.Server.UserProfiles;
using Microsoft.SharePoint;
using System.Web;

namespace UserProfilesApp
{
    class Program
    {
        static void Main(string[] args)
        {

            using (SPSite site = new SPSite("https://servername"))
            {
                   ServerContext context = 
                       ServerContext.GetContext(site);
                  UserProfileManager profileManager = 
                      new UserProfileManager(context);
                
                //Create a member group
                 MemberGroup newGroup = 
                     profileManager.GetMemberGroups().
                     CreateMemberGroup(PrivacyPolicyIdConstants.
                     MembershipsFromDistributionLists, 
                     "Customer Connection Team","Customer Connection VTeam","Customer Connection","http://example","abcd");
               
                //Create a membership
                 string sAccount = "domainname\\username";
                UserProfile u = profileManager.GetUserProfile(sAccount);
                u.Memberships.Create(newGroup,
                    MembershipGroupType.UserSpecified, 
                    "Customer Connection Team", Privacy.Organization);
               }
            }

        }
    }

See Also

タスク

[方法] ユーザー プロファイル ストアでユーザー プロファイルを作成する