MOSS文档库--给文档创建者分派完全控制权限

需求来源:用户能在文档库中创建或上传文档,但是不能编辑和删除,现在想让其能编辑和删除自己上传的文档。   

我先创建了一个控制台应用程序来测试,这个程序执行一边,会循环将文档库里的所有文件的创建者赋予完全控制权限,后续的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的引用
posted @ 2010-09-03 15:34  绿森林  阅读(284)  评论(0编辑  收藏  举报