Как получить все семейства сайтов в веб-приложении
Я хочу перечислить все семейства сайтов в моем веб-приложении; цель состоит в том, чтобы перечислить все mysites, созданные пользователями.
Как это:
/members/sites/sqladmin
/members/sites/sqluser
/members/sites/sqluser1
/members/sites/sqluser2
/members/sites/user1
4 ответа
Для доступа ко всем семействам сайтов в данном веб-приложении вполне естественно свойство SPWebApplication.Sites. Чтобы получить доступ к определенному веб-приложению, вы можете использовать такой код:
SPWebApplication webApp = SPWebApplication.Lookup(new Uri("http://my-web-app-url:80/"));
(см. также MSDN здесь).
Используйте приведенный ниже код, чтобы программно получить все семейства сайтов веб-приложения. Параметр URL = URL веб-приложения.
public DataTable GetAllSiteCollections(string url)
{
DataTable dt = new DataTable();
dt.Columns.Add("URL");
dt.Columns.Add("Name");
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPWebApplication webApplication = SPWebApplication.Lookup(new Uri(url));
foreach (SPSite site in webApplication.Sites)
{
dt.Rows.Add(new object[] { site.Url, site.Url });
}
});
return dt;
}
На домашней странице центра администрирования щелкните Управление приложениями.
На странице "Управление приложениями" в разделе "Коллекции сайтов" нажмите "Просмотреть все семейства сайтов".
На странице списка семейств сайтов перечислены все семейства сайтов в веб-приложении.