SPRoleDefinition - Classe
Définit une définition de rôle, y compris un nom, description, gestion des propriétés et un ensemble de droits.
Hiérarchie d’héritage
System.Object
Microsoft.SharePoint.SPRoleDefinition
Espace de noms : Microsoft.SharePoint
Assembly : Microsoft.SharePoint (dans Microsoft.SharePoint.dll)
Syntaxe
'Déclaration
Public NotInheritable Class SPRoleDefinition
'Utilisation
Dim instance As SPRoleDefinition
public sealed class SPRoleDefinition
Remarques
Utilisez la propriété RoleDefinitions de la classe SPWeb pour obtenir la collection de définitions de rôles pour un site Web. Utiliser un indexeur pour renvoyer un seul élément de la collection. Par exemple, si la collection est assignée à une variable nommée collRoleDefinitions, utilisez collRoleDefinitions[index] dans C# ou collRoleDefinitions(index) dans Visual Basic, où index est le numéro d'index de l'élément dans la collection ou une chaîne qui contient le nom de la définition de rôle.
Il n'est pas une méthode pour récupérer des attributions de rôle d'utilisateur sur un objet de liste SharePoint Foundation . Toutefois, le code ci-dessous vous permet de récupérer cette liste.
private void AddListRoleAssignmentNodes(SPList objList)
{
try
{
if (objList.HasUniqueRoleAssignments)
{
SPRoleAssignmentCollection oRoleAssignments =
objList.RoleAssignments;
foreach (SPRoleAssignment oRoleAssignment in oRoleAssignments)
{
SPPrincipal oPrincipal = oRoleAssignment.Member;
try
{
// Retrieve users having explicit permissions on the list
SPUser oRoleUser = (SPUser)oPrincipal;
}
catch (Exception ex)
{
string msg = ex.Message;
}
try
{
// Retrieve user groups having permissions on the list
SPGroup oRoleGroup = (SPGroup)oPrincipal;
if (oRoleGroup.Users.Count > 0)
{
string strGroupName = oRoleGroup.Name;
// Add code here to retrieve Users inside this User-Group
}
}
catch (Exception ex)
{
string msg = ex.Message;
}
}
}
}
catch (Exception ex)
{
string msg = ex.Message;
}
}
Private Sub AddListRoleAssignmentNodes(ByVal objList As SPList)
Try
If objList.HasUniqueRoleAssignments Then
Dim oRoleAssignments As SPRoleAssignmentCollection = objList.RoleAssignments
For Each oRoleAssignment As SPRoleAssignment In oRoleAssignments
Dim oPrincipal As SPPrincipal = oRoleAssignment.Member
Try
' Retrieve users having explicit permissions on the list
Dim oRoleUser As SPUser = CType(oPrincipal, SPUser)
Catch ex As Exception
Dim msg As String = ex.Message
End Try
Try
' Retrieve user groups having permissions on the list
Dim oRoleGroup As SPGroup = CType(oPrincipal, SPGroup)
If oRoleGroup.Users.Count > 0 Then
Dim strGroupName As String = oRoleGroup.Name
' Add code here to retrieve Users inside this User-Group
End If
Catch ex As Exception
Dim msg As String = ex.Message
End Try
Next oRoleAssignment
End If
Catch ex As Exception
Dim msg As String = ex.Message
End Try
End Sub
Exemples
L'exemple de code suivant modifie les autorisations de base d'une définition de rôle spécifié.
using(SPWeb oWebsite = SPContext.Current.Site.AllWebs["Site_Name/Subsite_Name"])
{
SPRoleDefinitionCollection collRoles = oWebsite.RoleDefinitions;
SPRoleDefinition oRoleDefinition = collRoles["Definition_Name"];
oRoleDefinition.BasePermissions = SPBasePermissions.AddListItems |
SPBasePermissions.BrowseDirectories |
SPBasePermissions.EditListItems |
SPBasePermissions.DeleteListItems |
SPBasePermissions.AddDelPrivateWebParts;
oRoleDefinition.Update();
}
Using oWebsite As SPWeb = SPContext.Current.Site.AllWebs("Site_Name/Subsite_Name")
Dim collRoles As SPRoleDefinitionCollection = oWebsite.RoleDefinitions
Dim oRoleDefinition As SPRoleDefinition = collRoles("Definition_Name")
oRoleDefinition.BasePermissions = SPBasePermissions.AddListItems Or SPBasePermissions.BrowseDirectories Or SPBasePermissions.EditListItems Or SPBasePermissions.DeleteListItems Or SPBasePermissions.AddDelPrivateWebParts
oRoleDefinition.Update()
End Using
Notes
Certains objets implémentent l'interface IDisposable , et vous devez éviter de conserver ces objets dans la mémoire après que qu'ils ne sont plus nécessaires. Pour plus d'informations sur les bonnes pratiques de codage, consultez Disposing Objects.
Cohérence de thread
Tous les membres statique (Partagé dans Visual Basic)s publics de ce type sont thread-safe. Cela n’est pas garanti pour les membres d’instance.