После прочтения вашего комментария, @ R100, если у вас есть управляемые пути, определенные для ваших дочерних сайтов, то каждый управляемый путь (независимо от логической иерархии, которую вы создали) находится на одном уровне в коллекции SPWebApplication.Sites.
Например, если у вас есть следующая иерархия:
- Root (/) [Семейство сайтов]
- Сайты (/ сайты) [Семейство сайтов]
- IT (/ sites / IT) [Семейство сайтов]
- Поддержка (/ sites / IT / Support) [Семейство сайтов]
тогда SPWebApplication.Sites будет содержать каждый из перечисленных выше элементов в единой коллекции
Кроме того, ServerRelativeUrl для семейств сайтов относится к корню установки SharePoint. Таким образом, то, что вы видите в скобках в вышеприведенной иерархии, это ServerRelativeUrl для каждого из узлов.
Таким образом, ваша проверка, когда вы перебираете свои значения, истинна для каждого дочернего семейства сайтов в / sites / it (если вы передаете имя siteName):
site.ServerRelativeUrl.StartsWith(String.Format("/sites/{0}/", siteName))