Share via


SPPermissionCollection.AddCollection-Methode

HINWEIS: Diese API ist veraltet.

Benutzer und deren Berechtigungen einer Liste hinzugefügt, die Berechtigungen der Benutzer eine Liste ändert, ändert die Berechtigungen für eine vorhandene Gruppe für eine Liste oder ändert die Berechtigungen einer vorhandenen Rolle für eine Website.

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaration
<ObsoleteAttribute("Use the SPRoleAssignmentCollection class instead")> _
Public Sub AddCollection ( _
    addUsersInfo As SPUserInfo(), _
    addUsersPermissions As SPRights(), _
    addGroupsNames As String(), _
    addGroupsPermissions As SPRights(), _
    addRolesNames As String(), _
    addRolesPermissions As SPRights() _
)
'Usage
Dim instance As SPPermissionCollection
Dim addUsersInfo As SPUserInfo()
Dim addUsersPermissions As SPRights()
Dim addGroupsNames As String()
Dim addGroupsPermissions As SPRights()
Dim addRolesNames As String()
Dim addRolesPermissions As SPRights()

instance.AddCollection(addUsersInfo, _
    addUsersPermissions, addGroupsNames, _
    addGroupsPermissions, addRolesNames, _
    addRolesPermissions)
[ObsoleteAttribute("Use the SPRoleAssignmentCollection class instead")]
public void AddCollection(
    SPUserInfo[] addUsersInfo,
    SPRights[] addUsersPermissions,
    string[] addGroupsNames,
    SPRights[] addGroupsPermissions,
    string[] addRolesNames,
    SPRights[] addRolesPermissions
)

Parameter

  • addUsersInfo
    Typ: []

    Ein SPUserInfo -Array, das Informationen zu Benutzern, einschließlich Benutzernamen, e-Mail-Adressen, Anzeigenamen und Hinweise zu den Benutzern angibt.

  • addUsersPermissions
    Typ: []

    Ein Array von SPRights , die Berechtigungen für einen Benutzer angibt.

  • addGroupsNames
    Typ: []

    Ein Zeichenfolgenarray, der Gruppennamen angibt.

  • addGroupsPermissions
    Typ: []

    Ein Array von SPRights , die Berechtigungen für eine Gruppe angibt.

  • addRolesNames
    Typ: []

    Ein Zeichenfolgenarray, der Rollennamen angibt.

  • addRolesPermissions
    Typ: []

    Ein Array von SPRights , die Berechtigungen für eine Rolle angibt.

Hinweise

Der Parameter für die Methode AddCollection Arbeit in Paare, ein Paar zum Hinzufügen oder Ändern von Benutzern und deren Berechtigungen, ein Paar zum Ändern der Berechtigungen von Rollen und ein Paar für die Berechtigungen der Gruppen geändert werden. Die Anzahl der Elemente in den Arrays für jedes Paar muss übereinstimmen. Übergeben Sie ein Nullverweis (Nothing in Visual Basic) für Parameter, die Sie nicht implementieren möchten.

Wenn Sie die Berechtigungen eines Benutzers, einer Rolle oder einer websiteübergreifenden Gruppe für eine Liste ändern, bleiben die ursprünglichen Berechtigungen für die Website. Die Änderungen gelten nur für die Liste. Wenn Sie Benutzer und Berechtigungen für eine Liste jedoch nicht für die gesamte Website hinzufügen, erhalten die Benutzer Gastberechtigungen für die Website.

Beispiele

Im folgenden Codebeispiel wird alle sechs Parameter der AddCollection -Methode verwendet, um die Berechtigungen der Benutzer der Website zu ändern, für wen die Notes -Eigenschaft "2" enthält, und so ändern Sie die Listenberechtigungen für angegebenen Rollen und Gruppen.

Das Beispiel durchläuft zweimal die Auflistung von Benutzern für die angegebene Website einmal, zählen der Anzahl der Benutzer, dessen Notizen "2" enthalten, und diese Nummer verwenden, um die Größe des zugeordneten SPRights Array und einmal an jeden dieser Benutzer zuweisen zu einem SPUserInfo Array festzulegen.

Der senkrechten Strichs ("|") in c# oder Or in Microsoft Visual Basic wird verwendet, um mehrere Rechte für eine einzelne Berechtigung zu begrenzen.

Dim siteCollection As SPSite = SPContext.Current.Site
Dim site As SPWeb = siteCollection.AllWebs("Site_Name")
Dim list As SPList = site.Lists("List_Name")
Dim perms As SPPermissionCollection = list.Permissions
Dim users As SPUserCollection = site.Users

Dim i As Integer = 0
Dim j As Integer = 0

Dim user As SPUser

For Each user In  users

    If user.Notes = "2" Then

        i = i + 1

    End If

Next user

Dim userInfo(i) As SPUserInfo

For Each user In  users

    If user.Notes = "2" Then

        userInfo(j).Email = user.Email
        userInfo(j).LoginName = user.LoginName
        userInfo(j).Name = user.Name
        userInfo(j).Notes = user.Notes + " changed to 3"

        j = j + 1

    End If

Next user

Dim permsIndiv(userInfo.Length) As SPRights
Dim k As Integer

For k = 0 To permsIndiv.Length - 1

    permsIndiv(k) = SPRights.FullMask

Next k

Dim roles(2) As String = 
    {"Role_1", "Role_2", "Role_3"}
Dim permsRoles(roles.Length) As SPRights
Dim l As Integer

For l = 0 To permsRoles.Length - 1

    permsRoles(l) = SPRights.AddListItems Or SPRights.ManageLists

Next l

Dim groups(2) As String = 
    {"Group_1", "Group_2", "Group_3"}
Dim permsGroups(groups.Length) As SPRights
Dim m As Integer

For m = 0 To permsGroups.Length - 1

    permsGroups(m) = 
        SPRights.AddListItems Or SPRights.ManageLists

Next m

perms.AddCollection(userInfo, permsIndiv, groups, 
    permsGroups, roles, permsRoles)
SPSite oSiteCollection = SPContext.Current.Site;
SPWeb oWebsite = oSiteCollection.AllWebs["Site_Name"];
SPList oList = oWebsite.Lists["List_Name"];
SPPermissionCollection collPermissions = oList.Permissions;
SPUserCollection collUsers = oWebsite.Users;
int intIndexCounter = 0;
int intIndexCurrent = 0;

foreach (SPUser oUser in collUsers)
{

    if (oUser.Notes == "2")
    {
        intIndexCounter = intIndexCounter + 1;
    }
}

SPUserInfo[] oUserInfo = new SPUserInfo[intIndexCounter];

foreach (SPUser oUser in collUsers)
{

    if (oUser.Notes == "2")
    {
        userInfo[intIndexCurrent].Email = oUser.Email;
        userInfo[intIndexCurrent].LoginName = oUser.LoginName;
        userInfo[intIndexCurrent].Name = oUser.Name;
        userInfo[intIndexCurrent].Notes = oUser.Notes + " changed to 3";

        intIndexCurrent = intIndexCurrent + 1;
    }
}

SPRights[] collIndividualPermissions = new SPRights[oUserInfo.Length];

for (int k=0; k<collIndividualPermissions.Length; k++)
{
    collIndividualPermissions[k] = SPRights.FullMask;
}

string[] strRoles = new string[3]{"Role_1", "Role_2", 
    "Role_3"};

SPRights[] collRolesPermissions = new SPRights[strRoles.Length];

for (int l = 0; l<collRolesPermissions.Length; l++)
{
    collRolesPermissions[l] = SPRights.AddListItems | SPRights.ManageLists;
}

string[] strGroups = new String[3]{"Group_1", 
    "Group_2", "Group_3"};

SPRights[] collGroupPermissions = new SPRights[strGroups.Length];

for (int m = 0; m<collGroupPermissions.Length; m++)
{
    collGroupPermissions[m] = SPRights.AddListItems | 
        SPRights.ManageLists;
}

collPermissions.AddCollection(oUserInfo, 
    collIndividualPermissions, strGroups, 
    collGroupPermissions, strRoles, collRolesPermissions);
oWebsite.Dispose();

Hinweis

Bestimmte Objekte, die IDisposable -Schnittstelle implementieren, und müssen Sie vermeiden, diese Objekte im Arbeitsspeicher beibehalten, wenn sie nicht mehr benötigt werden. Informationen zu bewährten Codierung finden Sie unter Disposing Objects.

Siehe auch

Referenz

SPPermissionCollection Klasse

SPPermissionCollection-Member

Microsoft.SharePoint-Namespace