Деактивация функции семейства веб-сайтов на MySite

StackOverflow https://stackoverflow.com/questions/1926152

  •  20-09-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

Я бы создал простое консольное приложение, которое перебирает все семейства сайтов (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();
                    }
                }
            });
        }

Другие советы

Этот код также можно вставить в мастер-страницу.Только site.Features.Remove(new Guid("поместите сюда идентификатор функции"));должно остаться.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top