2011-11-03 3 views
3

Je voudrais écrire une application C# pour cloner un groupe de rôles SharePoint MOSS2007 (et ses autorisations) mais je n'ai pas de point de départ. MOSS2007 semble assez sous-documenté (en termes de développement) et malgré googling le problème assez largement encore n'ont aucune idée de quoi commencer à essayer. J'espérais que quelqu'un ici avait fait quelque chose de similaire et/ou connaissait suffisamment la bibliothèque SharePoint pour fournir un bon point de référence.Clonage d'un groupe de rôles sharepoint

Je m'excuse sincèrement pour la question de base et aussi ne pas fournir plus d'informations - si j'avais autre chose que je le ferais! Lors du 'clonage' d'un groupe de sécurité SharePoint, tout d'abord, non pas sur le groupe lui-même, mais sur les autorisations.

Répondre

4

Ces autorisations sont stockées en tant que réaffectations à un objet SPWeb. D'abord, vous devez trouver le groupe que vous souhaitez cloner en faisant:

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

Ensuite, vous devez utiliser ce groupe récupéré pour obtenir les roleassignments sur l'objet SPWeb.

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

Ensuite, vous devez simplement créer un nouveau SPGroup et ajouter le groupe à la roleassignment et roleassignment à l'objet Web:

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(); 

Après cela, vous devriez avoir un nouveau groupe avec les mêmes autorisations que le groupe d'origine.

Si vous ne faites pas ce qui précède dans une fonctionnalité de partage ou quelque chose que vous pouvez faire à partir d'une application de console. Il suffit de créer une application console dans VS et le remplir avec quelque chose comme ceci:

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 
      }   
    }     
}  
} 
} 
+2

Comment cette authentifie? Je suppose que vous l'exécutez simplement sur le serveur ISS? – Codingo

+2

qu'allez-vous faire avec l'objet de groupe? L'exemple ci-dessus est uniquement sur la façon de cloner le groupe, pas sur la façon d'accéder à SharePoint. Vous pouvez simplement créer une application console qui accède à votre environnement sharepoint. – Tjassens

+1

Désolé, il semble que je suis loin de ma profondeur. Que dois-je lire pour apprendre comment faire cela? – Codingo

1

Lorsque vous souhaitez modifier, modifier ou ajouter des groupes à distance, vous pouvez en effet utiliser un webservice. Le webservice dont vous aurez besoin le usergroup.asmx. Vous pouvez trouver les méthodes de ce webservice en l'appelant simplement dans SharePoint.

donc parcourir: http://MySharePointSite/_vti_bin/usergroup.asmx

Cela vous donnera une liste de toutes les méthodes disponibles du service. Connexion au webservice d'une application peut se faire par:

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

et cela vous indique comment interagir avec le webservice usergroup:

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

+0

Très apprécié! – Codingo

Questions connexes