SPPermissionCollection.AddCollection method
NOTE: This API is now obsolete.
將使用者和他們的權限加入至清單、 修改清單的使用者的權限、 修改現有的清單中,群組的權限或修改現有的角色,站台的權限。
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'宣告
<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
Type: []SPUserInfo陣列,指定使用者,包括使用者名稱、 電子郵件地址、 顯示名稱與使用者相關的備忘稿的相關資訊。
addUsersPermissions
Type: []SPRights陣列,指定使用者的權限。
addGroupsNames
Type: []字串陣列,指定群組名稱。
addGroupsPermissions
Type: []SPRights陣列,指定群組的使用權限。
addRolesNames
Type: []字串陣列,指定角色名稱。
addRolesPermissions
Type: []SPRights陣列,指定角色的權限。
備註
AddCollection方法的參數在配對、 新增或修改使用者和他們的權限的一組、 修改角色的權限的一組及修改的群組權限的一組。在每一對陣列中包含的元素數目必須符合。傳遞a null reference (Nothing in Visual Basic)您不想要實作的參數。
如果您變更權限的使用者、 角色、 或是跨網站群組的清單,會保留原始站台的權限。變更只套用到清單。如果您新增使用者與權限的清單而不是整個網站,使用者會取得網站的訪客權限。
Examples
下列程式碼範例會使用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();
![]() |
---|
某些物件實作IDisposable介面,並且您必須避免之後不再需要保留這些物件在記憶體中。良好的程式碼撰寫方式的相關資訊,請參閱Disposing Objects。 |