Согласно этой ссылке :
Чтобы предоставить разрешение веб-части sharepoint для определенной группы SharePoint, мы должны использовать AudienceManager, как показано ниже
SPWeb currentSite = SPContext.Current.Site.RootWeb;
SPSite spSite = currentSite.Site;
SPServiceContext sc = SPServiceContext.GetContext(spSite);
AudienceManager am = new AudienceManager(sc);
Microsoft.SharePoint.WebPartPages.SPLimitedWebPartManager mgr = null;
mgr = currentSite.GetLimitedWebPartManager("SitePages" + "/" + page,
System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
foreach (System.Web.UI.WebControls.WebParts.WebPart webPart in mgr.WebParts)
{
if (webPart.Title == "WebPartTitle")
{
//Get the Existing Audience for the Web Part
string audWebPart = webPart.AuthorizationFilter;
//If there is no Audience for the Web Part just add it
if (audWebPart == "")
{
webPart.AuthorizationFilter = ";;;;" + NewAudience;
}
//If already Audiences are exist for the Web Part then append new Audience
else
{
webPart.AuthorizationFilter = audWebPart + "," + NewAudience;
}
mgr.SaveChanges(webPart);
lblMessage.Text = "Succeeded...";
}
}
Если мы просто установим значение для свойства AuthorizationFilter, то существующие аудитории будут перезаписаны.
Чтобы избежать этого, мы должны сначала проверить, существует ли уже аудитория для этой веб-части. Если это так, мы должны добавить его.
Платформа SharePoint Server 2010 требует, чтобы три вида значений были разделены парой точек с запятой (";;"). Несколько значений для глобальной аудитории и групп SharePoint разделяются запятыми, а несколько значений для списков рассылки разделяются символами новой строки ("\ n"). Поэтому в приведенном выше примере мы использовали ";;;;" предоставить действительную строку свойству AuthorizationFilter.