SPPermissionCollection.AddCollection 方法
请注意:此 API 现在已过时。
向列表添加用户和其权限、 修改列表的用户的权限、 修改现有的列表,组的权限或修改现有角色网站的权限。
命名空间: Microsoft.SharePoint
程序集: Microsoft.SharePoint(位于 Microsoft.SharePoint.dll 中)
语法
声明
<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() _
)
用法
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
)
参数
addUsersInfo
类型:[]SPUserInfo数组,它指定用户,包括用户名称、 电子邮件地址、 显示名称和注释有关的用户的信息。
addUsersPermissions
类型:[]SPRights数组,它指定用户的权限。
addGroupsNames
类型:[]一个指定组名称的字符串数组。
addGroupsPermissions
类型:[]SPRights数组,它指定组的权限。
addRolesNames
类型:[]一个指定角色名称的字符串数组。
addRolesPermissions
类型:[]SPRights数组,它指定角色的权限。
备注
在对、 来添加或修改用户和其权限的一对、 修改权限的角色,一对和修改的组权限的一对工作AddCollection方法的参数。包含每对数组中的元素数必须匹配。传递空引用(无 在 Visual Basic 中)不打算实现的参数。
如果更改权限的用户、 角色或跨网站用户组的列表,将保留该网站的原始的权限。更改应用到的列表。如果向列表中,而不是为作为一个整体网站中添加用户和权限,用户获取网站的来宾权限。
示例
下面的代码示例使用AddCollection方法的所有六个参数,若要修改其Notes属性将包含"2"的网站用户的权限和修改指定的角色和组的列表权限。
该示例两次循环访问用户指定的网站中,一次计算其说明包含"2"的用户数和使用此号码设置关联的SPRights阵列和一次用来将这些用户的每个分配给SPUserInfo数组的大小的集合。
C# 或Or在 Microsoft Visual Basic 中的管道符号 ("|") 用于分隔多个权限单个权限。
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();
备注
Certain objects implement the IDisposable interface, and you must avoid retaining these objects in memory after they are no longer needed. For information about good coding practices, see Disposing Objects.