SPRoleDefinition class
Define uma definição de função única, incluindo um nome, descrição, propriedades de gerenciamento e um conjunto de direitos.
Inheritance hierarchy
System.Object
Microsoft.SharePoint.SPRoleDefinition
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaração
Public NotInheritable Class SPRoleDefinition
'Uso
Dim instance As SPRoleDefinition
public sealed class SPRoleDefinition
Comentários
Use a propriedade RoleDefinitions da classe SPWeb para obter a coleção de definições de função para um site da Web. Use um indexador para retornar um único item da coleção. Por exemplo, se a coleção for atribuída a uma variável chamada collRoleDefinitions, use collRoleDefinitions[index] em C# ou collRoleDefinitions(index) no Visual Basic, onde index é o número de índice do item na coleção ou uma seqüência de caracteres que contém o nome da definição de função.
Não há um método para recuperar as atribuições de função de usuário em um objeto de lista de SharePoint Foundation . No entanto, o código a seguir permite que você recupere a lista.
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
Examples
O exemplo de código a seguir modifica as permissões base de uma definição de função especificada.
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
Dica
Determinados objetos implementam a interface IDisposable , e você deve evitar reter esses objetos na memória depois que eles não são mais necessários. Para obter informações sobre boas práticas de codificação, consulte Disposing Objects.
Thread safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.