Класс SPRoleDefinition
Определяет одном определении роли, включая имя, описание, свойства управления и набор прав.
Иерархия наследования
System.Object
Microsoft.SharePoint.SPRoleDefinition
Пространство имен: Microsoft.SharePoint
Сборка: Microsoft.SharePoint (в Microsoft.SharePoint.dll)
Синтаксис
'Декларация
Public NotInheritable Class SPRoleDefinition
'Применение
Dim instance As SPRoleDefinition
public sealed class SPRoleDefinition
Замечания
Свойство RoleDefinitions класса SPWeb для получения коллекции определений ролей для веб-узла. Указатель служит для получения одного элемента из коллекции. Например если коллекция присваивается переменной с именем collRoleDefinitions, с помощью collRoleDefinitions[index] в C# или collRoleDefinitions(index) в Visual Basic, где index является индекс элемента в коллекции или строка, содержащая имя определения роли.
Не является методом для получения назначений ролей пользователя для объекта списка SharePoint Foundation . Однако приведенный ниже код позволяет получить этот список.
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
Примеры
Следующий пример кода изменяет базовые разрешения определения указанной роли.
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
Примечание
Некоторые объекты реализуют интерфейс IDisposable и следует избегать сохранения этих объектов в памяти, после они больше не нужны. Disposing Objectsсведения о рекомендованные методы программирования, см.
Потокобезопасность
Любые общедоступные элементы static (Shared в Visual Basic) этого типа являются потокобезопасными. Не гарантируется, что любые элементы экземпляров потокобезопасны.