Web パーツの対象ユーザーを設定する
最終更新日: 2010年1月13日
適用対象: SharePoint Server 2010
Microsoft SharePoint Server 2010 の Web パーツは、特定のグループのメンバーまたは対象ユーザーのみに表示されるように設定できます。Web パーツをブラウザー内で編集してこの設定を行うと、SharePoint Server 2010 によって対象ユーザーを識別する GUID が Web パーツの AuthorizationFilter プロパティに割り当てられます。これと同じ操作をコードで実行すると、Web パーツの対象ユーザーをプログラムによって設定できます。これを行うと、ユーザーがブラウザー内で Web パーツを編集することを選択したときに、適切な対象ユーザー名が表示され、その名前を編集できるようになります。
ブラウザー内で Web パーツの対象ユーザーを設定する
ブラウザー内で Web パーツの対象ユーザーを設定するには、以下の手順を使用します。
ブラウザー内で Web パーツの対象ユーザーを設定する
Web パーツが含まれる Web ページで、[サイトの操作] メニューの [ページの編集] をクリックします。
Web パーツで、[Web パーツ] ドロップダウン メニューをクリックし、[Web パーツの編集] をクリックします。
[詳細設定] の [対象ユーザー] ボックスに、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