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.