前言
老大任务,做一个读取文档库把里面的每一条数据添加权限。挺起来很简单,但是做起来,还是很简单,哈哈。因为我没有接触过这些代码,所以得不断的请教了。大题明白了,简单实现了一下,应用控制台先做了一下简单的功能,里面有写死的,但是完全可以写活。
代码部分
//读取网站集
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();
总结
理解的不是很深,只能大概的理解一下,有不周的地方多多包涵,小生有礼了。。。。