今天在尝试写一个关于文档库的Eventhandler.
需求来源:用户能在文档库中创建或上传文档,但是不能编辑和删除,现在想让其能编辑和删除自己上传的文档。
我先创建了一个控制台应用程序来测试,这个程序执行一边,会循环将文档库里的所有文件的创建者赋予完全控制权限,后续的Eventhandler我会继续完成,先请大家帮我测试一下这样写是否可行。注意测试时,创建一个控制台应用程序,拷贝代码,再把站点URL换成实际的URL,文档库名称换成实际的文档库名称。
程序源码:
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
namespace TestListFolder{
class Program {
static void Main(string[] args) {
SPSecurity.CodeToRunElevated mycode = new SPSecurity.CodeToRunElevated(TestEventhandler);
SPSecurity.RunWithElevatedPrivileges(mycode);
}
public static void TestEventhandler() {
SPSite site = new SPSite(站点URL);
SPWeb web = site.RootWeb;//打开的是最顶级站点
SPList list = web.Lists[文档库名字];
for (int j = 0; j < list.Items.Count; j++) {
SPListItem item = list.Items[j];
SPFile file = list.Items.File;
SPUser user = file.Author;
SPRoleAssignment sa = new SPRoleAssignment((SPPrincipal)user);
SPRoleDefinition role = web.RoleDefinitions["完全控制"];
sa.RoleDefinitionBindings.Add(role);
item.BreakRoleInheritance(true);
item.RoleAssignments.Add(sa);
}
}
}
}
这里是控制台应用程序的全部代码,并注意添加对sharepoint的引用
作者:whalelover
相关文章
同类最新