Audience オブジェクト モデルの概要

Microsoft Office SharePoint Portal Server 2003 は、コンパイル済みのルールに基づいた対象ユーザーを基準にした対象設定をサポートしていました。Microsoft Office SharePoint Server 2007 では、ルールに基づいた対象ユーザーに加えて、SharePoint のグループおよび配布リスト (DL) のメンバシップに基づいた対象設定をサポートしています。Office SharePoint Server 2007 では、コンテンツの対象を、リスト レベルだけでなく、リスト アイテム レベルで設定する機能も提供されます。

注意

Office SharePoint Server 2007 には、特定のユーザーを対象としているすべての SharePoint サイトを見つける Web サービスも用意されています。詳細については、「[方法] 発行されたリンク Web サービスを使用する」を参照してください。

Audience オブジェクト モデルの新しい名前空間を操作する

SharePoint Portal Server 2003 では、対象ユーザーを操作するため、Microsoft.SharePoint.Portal.Audience 名前空間が使用されます。Office SharePoint Server 2007 では、Microsoft.Office.Server.dll の Microsoft.Office.Server.Audience 名前空間に Audience オブジェクト モデルが実装されています。この新しい名前空間は、Office SharePoint Server 2007 の新機能のオブジェクト モデル サポートを提供します。

Microsoft.SharePoint.Portal.Audience 名前空間は、下位互換性のために引き続き存在します。 SharePoint Portal Server 2003 で、Microsoft.SharePoint.Portal.Audience 名前空間を使用して SharePoint Portal Server に記述されたアプリケーションやツールは、Office SharePoint Server 2007 でも機能するようになっています。ただし、特に新機能については、予期したとおり動作しない可能性があることに注意してください。たとえば、Microsoft.SharePoint.Portal.Audience の API を使用している場合、ルールに基づいた対象ユーザーのみを操作できます。このため、新しいアプリケーションを記述する場合や、古いアプリケーションをアップグレードする場合は、Microsoft.Office.Server.dll 内の新しい Microsoft.Office.Server.Audience 名前空間を使用する必要があります。Microsoft.SharePoint.Portal.Audience 名前空間に属するすべてのクラスの使用は推奨されておらず、Microsoft.SharePoint.Portal.Audience 名前空間のクラスまたはメソッドを使用するたびに、警告が表示されます。

Office SharePoint Server 2007 の AudienceManager オブジェクトを取得する

AudienceMananger オブジェクトは Audience オブジェクト モデルの最上位オブジェクトです。AudienceManager オブジェクトは、Office SharePoint Server 2007 では次のコード例に示す構文を使用して取得することができます。この例を使用する前に、servername を実際の値で置き換えて、必要なコードを任意で追加してください。

using (SPSite site = new SPSite("https://servername"))
 {
   ServerContext context = ServerContext.GetContext(site);
   AudienceManager audManager = new AudienceManager(context);
   //your code here
 }

個人用のポータル

次のコード例では、リスト アイテムの対象を特定のユーザーに設定する方法を示します。

    AudienceLoader audienceLoader = AudienceLoader.GetAudienceLoader();
   foreach (SPListItem listItem in list.Items)
   {
    // get roles the list item is targeted to
     string audienceFieldValue = (string)listItem[k_AudienceColumn];

    // quickly check if the user belongs to any of those roles
     if (AudienceManager.IsCurrentUserInAudienceOf(audienceLoader,                           audienceFieldValue,
                          false))
                {
                    // is a member
                }
                else
                {
                    // not a member
                }
            }

See Also

概念

対象ユーザー概要

その他のリソース

対象ユーザーを使用してコンテンツを設定する