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.

另请参阅

引用

SPPermissionCollection 类

SPPermissionCollection 成员

Microsoft.SharePoint 命名空间