Хост-сайты, сайты надстроек и компоненты SharePoint в SharePoint

Когда надстройка, включающая компоненты SharePoint, устанавливается на веб-сайте, она включается в список на странице Контент сайта, откуда ее можно запустить. Этот список является единственным обязательным добавлением на веб-сайт, хотя также можно добавить и другие элементы (например, дополнительное действие или веб-часть надстройки). Сведения об этих возможностях см. в разделе Доступ к надстройке из пользовательского интерфейса.

Хост-сайты, сайты надстроек и изолированный домен

Компоненты надстройки SharePoint, отличные от элементов пользовательского интерфейса, такие как списки, типы контента, рабочие процессы и страницы, развертываются на другом веб-сайте в специальном изолированном домене. Этот факт во многом скрыт от пользователя. Специальный веб-сайт, на котором развертывается надстройка, называется сайтом надстройки. Веб-сайт, на котором устанавливается надстройка, называется хост-сайтом. Хотя сайт надстройки имеет собственный изолированный домен, он находится в том же семействе веб-сайтов, что и хост-сайт. (Одним из исключений из этого правила является установка надстройки с областью клиента. В этом сценарии веб-сайт надстройки находится в семействе веб-сайтов каталога корпоративных надстроек.)

На рисунке 1 показан хост-сайт с двумя установленными надстройками SharePoint. У надстройки 1 есть удаленные компоненты, но нет компонентов SharePoint, поэтому она не имеет сайта надстройки. У надстройки 2 нет удаленных компонентов, но есть два списка SharePoint и рабочий процесс. Они развернуты на изолированном дочернем сайте. (У надстройки SharePoint могут быть как удаленные компоненты, так и компоненты, размещенные в SharePoint, но ни одна показанная на этой схеме надстройка не включает компоненты обоих этих типов.)

Рис. 1. Хост-сайт с надстройкой, размещенной у поставщика, и надстройкой с размещением в SharePoint

Хостинговые сети, сети приложений и их компоненты.

Например, предположим, что надстройка с компонентами SharePoint, включающими не только элементы пользовательского интерфейса, которые могут быть развернуты на хост-сайте, устанавливается на хост-сайте со следующим URL-адресом:

https://www.fabrikam.com/sites/Marketing

Надстройка SharePoint будет развертываться на заново созданном веб-сайте с URL-адресом, аналогичным следующему:

http://add-in-bdf2016ea7dacb.fabrikamadd-ins.com/sites/Marketing/Scheduler

Обратите внимание, что этот URL-адрес имеет следующую структуру:

https://` _Add-in_Prefix_ `-` _Add-in_ID_ `.` _Add-in_Base_Domain_ `/` _Domain_Relative_URL_of_Host_Web_ `/` _Add-in_Name_

Эти заполнители имеют следующие значения:

  • Префикснадстройки_ это любая строка, установленная администратором фермы в центре администрирования. Значение по умолчанию — default. В этом примере администратор изменил это значение на "надстройка".
  • Add-in_ID — это шестнадцатеричное число, которое генерируется внутри надстройки при ее установке.
  • Add-in_Base_Domain — это строка, установленная администратором фермы в центре администрирования или командной консоли SharePoint. Его не следует устанавливать как поддомен веб-приложения SharePoint, иначе цель изоляции надстройки не будет выполнена. В этом примере администратор удалил префикс "www." и добавил "add-ins" к имени компании. Таким образом, fabrikamadd-ins.com — это базовый домен надстройки.
  • Domain_Relative_URL_of_Host_Web — это относительный URL-адрес родительского хост-сайта, в данном случае sites/Marketing.
  • Add-in_Name — это значение для атрибута Name элемента App в файле appmanifest.xml.

Существует две основные причины развертывания компонентов SharePoint на сайтах надстройки, а не на хост-сайте. Обе причины связаны с безопасностью.

  • Принудительное применение разрешений надстройки: В модели надстроек SharePoint надстройка имеет собственное удостоверение и разрешения, которые не обязательно совпадают с разрешениями пользователя, выполняющего надстройку. Эти разрешения надстройки запрашиваются при установке надстройки и предоставляются лицом, устанавливающим её, а также лицом, имеющим все разрешения, которые запрашивает надстройка. (Если пользователь, устанавливающий надстройку, не имеет всех разрешений, запрошенных надстройкой, пользователь не может установить надстройку.) Предоставляя каждой надстройке собственный домен, SharePoint может надежно определять запросы, выполняемые надстройкой, и проверять разрешения надстройки. Дополнительные сведения о разрешениях надстроек см. в разделе Разрешения надстроек.

  • Безопасность междоменных сценариев. Современные браузеры поддерживают "ту же политику источника" в отношении вызовов методов JavaScript. Развертывая каждую надстройку SharePoint в собственном домене, SharePoint использует ту же политику источника браузера, чтобы гарантировать, что JavaScript в надстройке SharePoint не может выполнять JavaScript из любого другого домена, включая домен, в котором с точки зрения конечного пользователя установлена надстройка.

    В SharePoint также есть средства безопасного обхода ограничений политики. Помимо прочего, удаленным компонентам надстройки SharePoint разрешается запрашивать данные с любого веб-сайта в рамках общей родительской принадлежности сайта надстройки и хост-сайта. Дополнительные сведения см. в статье Обращение к данным SharePoint из надстроек с помощью междоменной библиотеки.

Типы компонентов SharePoint, встречающиеся в надстройке SharePoint

В целом надстройка SharePoint может содержать один или несколько компонентов из приведенного ниже списка. С некоторыми исключениями, эти компоненты необходимо развертывать в веб-компонентах, находящихся в файле пакета решения SharePoint (WSP-файле).

Примечание.

Компоненты, помеченные звездочкой (*), более подробно рассматриваются в разделе Предостережения для развертывания компонентов SharePoint ниже в этой статье.

  • Компоненты (только уровня веб-сайта)
  • Дополнительные действия (включая элементы контекстного меню и настройки ленты)*
  • Удаленные приемники событий*
  • Разметка, которая ссылается на веб-части, включая части надстроек, включенные в SharePoint (но не пользовательские веб-части)*
  • Пользовательские файлы каскадных таблиц стилей (CSS) для использования на страницах SharePoint
  • Пользовательские файлы JavaScript для использования страницами SharePoint
  • Модули (наборы файлов)
  • Страницы
  • Шаблоны списка
  • Экземпляры списков и библиотек (только в классическом интерфейсе)
  • Настраиваемые формы списков
  • Настраиваемые представления списков
  • Настраиваемые типы контента
  • Поля (относящиеся к типам полей, встроенных в SharePoint)
  • Модели служб Microsoft Business Connectivity Services (BCS) (только для веб-области), внешние типы контента на основе модели и внешние списки, использующие типы контента*
  • Рабочие процессы*
  • Контейнеры свойств
  • Шаблоны сайтов (но не определения сайтов)*

В надстройке SharePoint нельзя развертывать компоненты SharePoint других видов. Дополнительные сведения о том, что можно включать в надстройку SharePoint, см. в статье Сравнение надстроек SharePoint с решениями SharePoint.

Условия для развертывания компонентов SharePoint

Ознакомьтесь с условиями и подробными сведениями, касающимися развертывания определенных компонентов SharePoint в надстройке:

  • Пользовательские действия: Помимо добавления пользовательских действий на веб-сайт надстройки, их также можно добавить на хост-сайт. Чтобы добавить дополнительное действие на сайт надстройки, его следует включить в компонент уровня Web, находящийся в WSP-файле, как это делается с любым другим компонентом, который добавляется на сайт надстройки. Чтобы добавить дополнительное действие на хост-сайт, можно включить (даже в надстройке с внешним размещением) разметку CustomAction в компонент, который находится в пакете надстройки, но вне WSP-файла. Компоненты в такой "свободной" функции применяются к хост-сайту, а не к веб-сайту надстроек, поэтому этот тип компонента называется веб-компонентом узла.

  • Веб-части: Один тип веб-части, надстройка, можно развернуть в надстройке, а часть надстройки может перейти на веб-сайт надстройки или хост-сайт. На все остальные типы веб-частей можно ссылаться в надстройках, но они не развертываются. Если веб-часть надстройки разворачивается на хост-сайте, ее необходимо включить в компонент хост-сайта.

  • Удаленные приемники событий: Это новые возможности SharePoint. Они похожи на классические приемники событий SharePoint, за исключением того, что код выполняется в облаке. Эти приемники событий недоступны в надстройках, размещенных в SharePoint.

  • Рабочие процессы: Рабочие процессы в SharePoint используют среду выполнения рабочих процессов, размещенную в Microsoft Azure, которая является новой в SharePoint. Закодированные рабочие процессы, использующие среду выполнения рабочих процессов, размещенную в SharePoint, не могут быть включены в надстройку SharePoint. Разрешены только декларативные рабочие процессы или рабочие процессы, использующие новейшую среду выполнения.

  • Модели Microsoft Business Connectivity Services (BCS), типы внешнего контента и внешние списки. Модели службы подключения к бизнес-данным (BDC) обычно имеют область, которая шире, чем семейство веб-сайтов. Но когда модель службы подключения к бизнес-данным развертывается в надстройке, ее область ограничивается областью сайта надстройки. Когда модель службы подключения к бизнес-данным включается в надстройку, она хранится не в хранилище общих служб BDC, а в виде файла на сайте надстройки.

  • Шаблоны веб-сайтов. В большинстве случаев вам потребуется, чтобы сайт надстройки устанавливал новую встроенную конфигурацию определений сайта APP#0, оптимизированную для сайтов надстройки. (Дополнительные сведения об этом см. в разделе Доступ к надстройке из пользовательского интерфейса.) SharePoint автоматически использует APP#0, если пакет надстройки не включает элемент WebTemplate.

    Кроме того, можно задать настраиваемый тип сайта для сайта надстройки. Чтобы сделать это, необходимо выполнить два основных действия.

    • Включите пользовательский элемент WebTemplate (шаблон веб-сайта), файл onet.xml и, возможно, другие связанные файлы в компонент сайта надстройки для вашей надстройки. Разверните шаблон веб-сайта в веб-компоненте в WSP-файле внутри пакета надстройки как обычно.

    • Добавьте элемент WebTemplate (PropertiesDefinition complexType) (манифест надстройки SharePoint) в манифест надстройки в качестве потомка элемента Properties и установите для его атрибута Id значение GUID компонента сайта надстройки и значение Name атрибута Элемент WebTemplate (шаблон веб-сайта). Обратите внимание, что GUID должен быть заключен в фигурные скобки "{}" и содержать дефисы, а также отделяться от имени шаблона символом "#". Ниже приведен пример.

      <WebTemplate Id="{81dd4ae5-873b-4759-9838-4ad9c3dd2952}#NewSiteType" />
      

    Примечание.

    Новый элемент WebTemplate для манифестов надстроек отличается разметкой от элемента WebTemplate, который можно включить в компоненты. Элемент WebTemplate, который можно включить в компоненты, определяет тип сайта, но элемент WebTemplate для манифестов надстроек просто указывает на используемый тип сайтов. Дополнительные сведения о манифесте надстройки SharePoint см. в разделе Структура пакета надстройки.

    Осторожностью

    Не используйте элемент WebTemplate в манифесте надстройки для указания какой-либо из встроенных конфигураций определений сайта SharePoint, в качестве типа веб-сайта. Мы не поддерживаем использование какой-либо из встроенных конфигураций определений сайта, кроме APP#0, для сайтов надстройки.

    Дополнительные сведения о конфигурациях определений сайтов и веб-шаблонах см. в статье Работа с шаблонами сайтов и определениями.

См. также