Клонирование sharepoint rolegroup - PullRequest
3 голосов
/ 03 ноября 2011

Я хотел бы написать приложение C # для клонирования группы ролей SharePoint MOSS2007 (и ее разрешений), однако, не имеет отправной точки.

MOSS2007 выглядит недостаточно документированным (с точки зрения разработки), и, несмотря на поиски в Google проблемы, все еще не имеют понятия, с чего начать. Я надеялся, что кто-то здесь сделал что-то подобное и / или знал библиотеку SharePoint достаточно, чтобы обеспечить хороший ориентир.

Я искренне извиняюсь за основной вопрос, а также не предоставляю больше информации - если бы у меня было что-то еще, я бы!

Ответы [ 2 ]

4 голосов
/ 03 ноября 2011

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

Эти разрешения сохраняются в качестве ролевых назначений для объекта SPWeb.Сначала вы должны найти группу, которую хотите клонировать, выполнив:

SPGroup group = spWeb.Groups["name group"];

Затем вы должны использовать эту извлеченную группу для получения ролей назначения для объекта SPWeb.

SPRoleAssignment ass = spWeb.RoleAssignments.GetAssignmentByPrincipal(group2);

Затем вынеобходимо просто создать новую группу SPGroup и добавить группу к назначению роли и назначению роли к веб-объекту:

spWeb.SiteGroups.Add(groupName, user, user, groupDescription);
SPGroup newGroup = spWeb.SiteGroups[groupName];
SPRoleAssignment roleAssignment = new SPRoleAssignment(newGroup);

//add role to web
spWeb.RoleAssignments.Add(roleAssignment);
spWeb.Update();

После этого у вас должна быть новая группа с теми же разрешениями, что и у исходной группы.

Если вы не выполняете вышеуказанное в функции sharepoint или что-то еще, вы можете сделать это из консольного приложения.Просто создайте консольное приложение в VS и заполните его примерно так:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Microsoft.SharePoint;   
namespace ConsoleApplication 
{     
class Program     
{         
static void Main(string[] args)         
{             
    using (SPSite spSite = new SPSite("http://yoururl"))            
    {                 
          using (SPWeb spWeb = spSite.RootWeb)   
          {                     
            //perform the code to clone the group here
          }          
    }                  
 }    
 } 
}
1 голос
/ 04 ноября 2011

Если вы хотите удаленно редактировать, изменять или добавлять группы, вы действительно можете использовать веб-сервис. Веб-сервису вам понадобится usergroup.asmx. Вы можете найти методы этого веб-сервиса, просто вызвав его в SharePoint.

Итак, просмотрите: http://MySharePointSite/_vti_bin/usergroup.asmx

Это даст вам список всех доступных методов обслуживания. Подключение к веб-сервису из приложения может быть выполнено:

http://msdn.microsoft.com/en-us/library/ms458094.aspx

и это говорит вам, как взаимодействовать с веб-сервисом группы пользователей:

http://msdn.microsoft.com/en-us/library/ms412944.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...