Web パーツの対象ユーザーを設定する

最終更新日: 2010年1月13日

適用対象: SharePoint Server 2010

Microsoft SharePoint Server 2010 の Web パーツは、特定のグループのメンバーまたは対象ユーザーのみに表示されるように設定できます。Web パーツをブラウザー内で編集してこの設定を行うと、SharePoint Server 2010 によって対象ユーザーを識別する GUID が Web パーツの AuthorizationFilter プロパティに割り当てられます。これと同じ操作をコードで実行すると、Web パーツの対象ユーザーをプログラムによって設定できます。これを行うと、ユーザーがブラウザー内で Web パーツを編集することを選択したときに、適切な対象ユーザー名が表示され、その名前を編集できるようになります。

ブラウザー内で Web パーツの対象ユーザーを設定する

ブラウザー内で Web パーツの対象ユーザーを設定するには、以下の手順を使用します。

ブラウザー内で Web パーツの対象ユーザーを設定する

  1. Web パーツが含まれる Web ページで、[サイトの操作] メニューの [ページの編集] をクリックします。

  2. Web パーツで、[Web パーツ] ドロップダウン メニューをクリックし、[Web パーツの編集] をクリックします。

  3. [詳細設定] の [対象ユーザー] ボックスに、1 つ以上の対象ユーザー名を入力します。

プログラムによって Web パーツの対象ユーザーを設定する

3 種類の対象ユーザーを AuthorizationFilter プロパティに割り当てることができます。プログラムによって Web パーツの対象ユーザーを設定するには、AudienceManager オブジェクトを使用して対象ユーザーの GUID を取得し、この GUID を Web パーツの AuthorizationFilter プロパティに割り当てます。また、LDAP (ライトウェイト ディレクトリ アクセス プロトコル) 識別名または SharePoint グループ名の値をこのプロパティに割り当てることもできます。

SharePoint Server 2010 フレームワークでは、これらの 3 種類の値を 2 つのセミコロン (";;") で区切って指定する必要があります。グローバル対象ユーザーおよび SharePoint グループの複数の値を指定する場合は値をコンマで区切り、配布リストの複数の値を指定する場合は改行文字 ("\n") で区切ります。次の例は、AuthorizationFilter プロパティに値を割り当てる有効な文字列を示しています。

string[] audienceIDs = new string[] {"GUID", "GUID"};
string[] distributionLists = new string[] 
{"LDAP Distinguished Distribution List Name", "LDAP Distinguished Distribution List Name"};
string[] sharePointGroups = new string[] {"SharePoint Group Name", "SharePoint Group Name"};

string result = string.Format("{0};;{1};;{2}",
string.Join(",", audienceIDs),
string.Join("\n", distributionLists),
string.Join(",", sharePointGroups));
Dim audienceIDs() As String = {"GUID", "GUID"}
Dim distributionLists() As String = {"LDAP Distinguished Distribution List Name", "LDAP Distinguished Distribution List Name"}
Dim sharePointGroups() As String = {"SharePoint Group Name", "SharePoint Group Name"}

Dim result As String = String.Format("{0};;{1};;{2}", String.Join(",", audienceIDs), String.Join(vbLf, distributionLists), String.Join(",", sharePointGroups))

Web パーツ ページを操作している場合は、SPLimitedWebPartManager オブジェクトを使用して、編集するプロパティがある Web パーツを取得できます。以下の例では、対象ユーザーの GUID を取得し、それをページの最初の Web パーツの AuthorizationFilter プロパティに割り当てる方法を示しています。この例では、Microsoft.SharePoint、Microsoft.SharePoint.WebPartPages、および Microsoft.Office.Server.Audience の using ステートメントへの参照を使用できることを前提としています。この例では、GUDI の後に 4 つのセミコロン (";;;;") を追加していることに注意してください。これは、配布リストまたは SharePoint グループを追加しないことを示すためです。

この方法で Web パーツの表示対象を特定の対象ユーザーにのみに設定すると、ブラウザーを使用して Web パーツを編集するときに、指定した対象ユーザーの名前が [対象ユーザー] ボックスに表示されます。

using (SPWeb site = (SPWeb)properties.Feature.Parent)
   {
// Get SPLimitedWebPartManager for "default.aspx" page.
      using (SPLimitedWebPartManager webPartManager = site.GetLimitedWebPartManager("default.aspx", PersonalizationScope.Shared))
         {
            AudienceManager audienceManager = new AudienceManager(ServerContext.Current);
// Assign the GUID for "Sample Audience" and "Sample Audience 2" to the AuthorizationFilter property of the first Web Part on the page.
            webPartManager.WebParts[0].AuthorizationFilter = string.Format("{0}, {1};;;;", 
               audienceManager.GetAudience("Sample Audience").AudienceID, audienceManager.GetAudience("Sample Audience2").AudienceID);
// Save the changes to the Web Part.
            webPartManager.SaveChanges(webPartManager.WebParts[0]);
         }
   }
 Using site As SPWeb = CType(properties.Feature.Parent, SPWeb)
' Get SPLimitedWebPartManager for "default.aspx" page.
     Using webPartManager As SPLimitedWebPartManager = site.GetLimitedWebPartManager("default.aspx", PersonalizationScope.Shared)
           Dim audienceManager As New AudienceManager(ServerContext.Current)
' Assign the GUID for "Sample Audience" and "Sample Audience 2" to the AuthorizationFilter property of the first Web Part on the page.
          webPartManager.WebParts(0).AuthorizationFilter = String.Format("{0}, {1};;;;", audienceManager.GetAudience("Sample Audience").AudienceID, audienceManager.GetAudience("Sample Audience2").AudienceID)
' Save the changes to the Web Part.
          webPartManager.SaveChanges(webPartManager.WebParts(0))
     End Using
End Using

関連項目

タスク

[方法] リスト アイテムの対象ユーザーを設定する

参照

AudienceManager