前言
老大任务,做一个读取文档库把里面的每一条数据添加权限。挺起来很简单,但是做起来,还是很简单,哈哈。因为我没有接触过这些代码,所以得不断的请教了。大题明白了,简单实现了一下,应用控制台先做了一下简单的功能,里面有写死的,但是完全可以写活。
代码部分
//读取网站集
SPSite site = new SPSite ("http://localhost"); SPWebApplication webApp = site.WebApplication; SPWeb web = site.OpenWeb(); //用于文档库更新 web.AllowUnsafeUpdates = true; //文档库 SPList docLib = null ; try { //这里是读取自己的那个文档库写死了 docLib = web.Lists[ "MyDocument"]; } catch (Exception ) { Console.WriteLine("不?对?" ); return; } SPRoleAssignment roleAssignment = null ; if (docLib != null ) { SPListItemCollection oSpListCl = docLib.Items; docLib.BreakRoleInheritance( true); foreach (SPListItem item in oSpListCl) { SPGroup group = null ; SPUser user = null ; try { user = web.Users[ @"myName"];//用户和组都是这样添加的,所以我这里用的组,用户也一样 group = web.Groups[ @"myGroup" ];// } catch (Exception ) { throw new Exception( "没?有?D这a个?组???" ); } if (group == null ) { Console.WriteLine("用??户??为空?" ); return; } //return; //删除这个组 //item.RoleAssignments.Remove(group); roleAssignment = new SPRoleAssignment (group); //告诉程序我要给这一项添加的组权限是什么,这里是读取权限 SPRoleDefinition sPRolwDe = web.RoleDefinitions.GetByType(SPRoleType .Reader); //将权限添加到功能中,这里roleAssignment我也不大懂,只是知道这么用,以后查了再说明一下roleAssignment.RoleDefinitionBindings.Add(sPRolwDe);
item.RoleAssignments.Add(roleAssignment); //文档库中的一项更新,同事文档库也就更新了
item.Update(); } } Console.ReadKey();
总结
理解的不是很深,只能大概的理解一下,有不周的地方多多包涵,小生有礼了。。。。