2009-05-12 3 views
2

Actuellement, j'essaie de récupérer tous les groupes qui se trouvent sur mon site SharePoint. Après quoi, j'ai besoin de savoir quels utilisateurs sont dans le groupe et le niveau d'autorisation de site pour chaque utilisateur. J'utilise WSS 3.0, en développement en C# (visual studio 2008). Aide vraiment nécessaire car je suis encore nouveau dans ce domaine. Merci d'avance!Sharepoint - Récupération du groupe d'utilisateurs et des droits d'accès par programme

Répondre

2

Les groupes peuvent être trouvés comme:

SPSite siteCollection = new SPSite("site url"); 
SPWeb site = siteCollection.OpenWeb(); 

foreach(SPGroup group in site.Groups){ 
    Console.WriteLine(group.Name); 

    foreach(SPUser u in group.Users){ 
     //will give you users in group, you can then grab the roles of the user 
    } 
} 

Pour trouver quelles sont les permissions un rôle a:

SPSite oSiteCollection = SPContext.Current.Site; 
using(SPWeb oWebsite = oSiteCollection.AllWebs["Site_Name"]) 
{ 
    SPMember oMember = oWebsite.Roles["Role_Name"]; 
    oWebsite.Permissions[oMember].PermissionMask = 
     SPRights.ManageLists | SPRights.ManageListPermissions; 
} 

La matrice des autorisations peuvent être trouvées here

+0

Merci pour la réponse, mais je frappe erreur pour listGroup + = (groupCol.Name); 'Microsoft.SharePoint.SPGroupCollection' ne contient pas de définition pour 'Name' et aucune méthode d'extension 'Name' acceptant un premier argument de type 'Microsoft.SharePoint.SPGroupCollection' n'a été trouvée (il manque une directive using ou un référence d'assemblage?) foreach (SPUser en group.Users mono-utilisateur) le nom « groupe » n'existe pas dans le contexte actuel \t conseils Pls, merci! –

+0

Il semble que votre variable groupCol soit de type SPGroupCollection, qui n'a pas de propriété Name (les éléments de cette collection le font cependant). Le code que j'ai fourni ne fait rien de pareil. Vous devriez poster votre code afin que nous puissions voir ce que vous faites mal. –

+0

Voulez-vous que je le colle ici? SPGroupCollection groupCol = oWebsite.Groups; foreach (Groupe SPGroup dans oWebsite.Groups) { //ListGroup.Text + = (Group.Name) + "
"; Label1.Text + = (Group.Name) + "
"; } sortie est: Site d'équipe Membres Site Propriétaires Site Équipe Visiteurs une idée pourquoi? Merci –

0
+0

Veuillez ajouter la partie pertinente du lien dans votre réponse, de sorte qu'il s'assure que la solution serait disponible même si les liens sont en panne. – rakhi4110

Questions connexes