Отключение функции семейства сайтов на MySite - PullRequest
1 голос
/ 18 декабря 2009

У нас есть пользовательская главная страница, которая развернута в веб-приложении MySite в соответствии с этими инструкциями - http://www.sharepointblog.com/2008/07/sp2007-custom-master-pages-on-subsites.html

Однако нам требуется возможность деактивировать эту функцию во всех семействах сайтов, которые находятся в веб-приложении MySite. Функция построена как область семейства сайтов. Как бы мы деактивировали их в приложении с потенциально более 3000 MySites?

Ответы [ 2 ]

4 голосов
/ 18 декабря 2009

Я хотел бы создать простое консольное приложение, которое перебирает все семейства сайтов (MySites) вашего веб-приложения и отключает эту функцию. Вам нужно будет запустить этот фрагмент кода с повышенными привилегиями ( SPSecurity.RunWithElevatedPrivileges ), чтобы у вас было разрешение деактивировать функцию семейства сайтов.

private static void DeleteWebsiteCollections()
        {
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                SPWebApplication webApp = SPWebApplication.Lookup(new Uri("http://MySiteHostWebApp"));
                SPSiteCollection mySites = webApp.Sites;

                foreach (SPSite site in mySites)
                {
                    site.Features.Remove(new Guid("place your feature id here"));

                    if (null != site)
                    {
                        site.Dispose();
                    }
                }
            });
        }
0 голосов
/ 19 декабря 2009

Этот код также можно прикрепить к главной странице. Только site.Features.Remove (новый Guid («разместите здесь свой идентификатор функции»)); должен остаться.

...