在Share Point 2010 中针对相应用户赋某一个list中的item相关权限

看标题看起来挺绕口,实际上是这样的,在项目中往往会有这样的情况,针对某些用户,他对于list中的其中一个item或者多个item只有Read权限或者其他,这样就不能仅仅是对list赋权限了,就需要利用item来赋权限。

SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite oWebsite = new SPSite(SPContext.Current.Web.Url))
                {
                    using (SPWeb web = oWebsite.OpenWeb())
                    {

                        web.AllowUnsafeUpdates = true;

                item.BreakRoleInheritance(true);//打断继承
                SPRoleAssignmentCollection roleAssignmentCollection = item.RoleAssignments;
                for (int i = roleAssignmentCollection.Count - 1; i >= 0; i--)
                {
                    roleAssignmentCollection.Remove(i);
                }
SPRoleAssignment roleAssignment = new SPRoleAssignment((SPPrincipal)spUser);//假定可以拿到一个spuser
                    roleAssignment.RoleDefinitionBindings.Add(web.RoleDefinitions["Read"]);//赋read权限
                    item.RoleAssignments.Add(roleAssignment);
item.Update();
                web.AllowUnsafeUpdates = false;
          }
        } });

这时,从页面中就可以看到,选中list中的一个item,点击ribbon中的 item permissions按钮。

就会发现,对于某个用户赋予了相应权限。

原文地址:https://www.cnblogs.com/fengyishou/p/2870124.html