zoukankan      html  css  js  c++  java
  • sharepoint listItem设置权限

     SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    SPSite site = new SPSite("http://john1/");
                    SPWeb web = site.OpenWeb();
                    Console.WriteLine("Currently logged in as: " + web.CurrentUser.ToString() + "(" + web.CurrentUser.Name + ")");
    
                    SPUserToken userToken = web.AllUsers[@"LANGKAI\administrator"].UserToken;
    
                    site = new SPSite("http://john1/", userToken);
                    web = site.OpenWeb();
                    // Be sure the current user has permission to check permissions.
                    if (!web.DoesUserHavePermissions(SPBasePermissions.EnumeratePermissions))
                    {
                        return;
                    }
                    SPUser currentUser = web.CurrentUser;
                    Console.WriteLine(currentUser.LoginName);
                    SPList list = web.Lists["DZG Expense"];
                    SPListItem item = list.Items[0];
                    for (int i = 0; i < item.AllRolesForCurrentUser.Count; i++)
                    {
                        Console.WriteLine(item.AllRolesForCurrentUser[i].BasePermissions.ToString());
                    }
                    if (!item.HasUniqueRoleAssignments)
                    {
                        item.BreakRoleInheritance(false);
                    }
    
                    //查看某用户在当前item上的权限级别
    
                    SPUser user = web.EnsureUser(@"LANGKAI\liuxin");
                    Console.WriteLine(user.LoginName);
                    SPRoleAssignment ass = item.RoleAssignments.GetAssignmentByPrincipal((SPPrincipal)user);
    
                    foreach (SPRoleDefinition t in ass.RoleDefinitionBindings)
                    {
                        t.BasePermissions |= SPBasePermissions.ViewListItems;
                        //t.BasePermissions &= ~SPBasePermissions.ViewListItems;
                        Console.WriteLine(t.Name);
                        Console.WriteLine(t.BasePermissions.ToString());
                        t.Update();
                    }
    
                    //SPRoleDefinition role = web.RoleDefinitions.GetByType(SPRoleType.Reader);
                    //ass.RoleDefinitionBindings.Add(role);
                    //ass.Update();
                    foreach (SPRoleDefinition t in ass.RoleDefinitionBindings)
                    {
                        Console.WriteLine(t.Name);
                        Console.WriteLine(t.BasePermissions.ToString());
                        
                    }
                   Console.WriteLine(list.DoesUserHavePermissions(SPBasePermissions.AddListItems));
                    //SPBasePermissions p = item.GetUserEffectivePermissions(user.LoginName);
                    //Console.WriteLine(p.ToString());
                    //SPPermissionInfo info = item.GetUserEffectivePermissionInfo(user.LoginName);
                    //Console.WriteLine(info.Permissions.ToString());
    
                    //Console.WriteLine("SPRoleAssignment....");
                    //SPRoleAssignment ra = new SPRoleAssignment(user);
                    //SPRoleDefinition role = web.RoleDefinitions.GetByType(SPRoleType.Reader);
                    //ra.RoleDefinitionBindings.Add(role);
                    //item.RoleAssignments.Add(ra);
                    //item.Update(); 
                    //SPPermissionInfo info2 =  item.GetUserEffectivePermissionInfo(user.LoginName);
                    //Console.WriteLine(info2.Permissions.ToString());
    
    
                    //for (int i = 0; i < item.AllRolesForCurrentUser.Count; i++)
                    //{
                    //    Console.WriteLine(item.AllRolesForCurrentUser[i].BasePermissions.ToString());
                    //}
                    //SPListItem item = properties.ListItem;
                    //SPRoleDefinitionBindingCollection usersRoles = web.AllRolesForCurrentUser;
                    //for (int i = 0; i < usersRoles.Count; i++)
                    //{
                    //    //sw.Write(usersRoles[i].BasePermissions.ToString());
                    //    Console.WriteLine(usersRoles[i].BasePermissions.ToString());
                    //}
                    //sw.Close();
                });
    
  • 相关阅读:
    【算法研究】目标检测
    【Java学习笔记】Java中方法和成员变量的访问控制
    DevExpress XtraReports 入门一 创建 Hello World 报表
    整理点dropdownList的应用
    Developer Express 之 XtraReport报表预览控件PrintControl设置
    C#实现winform仿div+css半透明遮罩效果
    动态传递参数到DevExpress.XtraReports的小结 .
    Developer Express 之 XtraReport如何显示设计窗体,打开已设计过的报表
    Developer Express 之 XtraReport如何动态绑定数据
    c#判断右键菜单(ContextMenuStrip)是从哪个控件弹出来的方法
  • 原文地址:https://www.cnblogs.com/liuxinls/p/2968628.html
Copyright © 2011-2022 走看看