Как настроить таргетинг веб-частей на аудиторию - PullRequest
0 голосов
/ 12 августа 2011

Привет, я новичок в sharepoint. Как прогамматически настроить таргетинг веб-частей на аудиторию и предложить любой ответ.

1 Ответ

1 голос
/ 12 августа 2011

Согласно этой ссылке :

Чтобы предоставить разрешение веб-части 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...