xuxiaohui9216 发表于 2015-9-30 07:18:41

Sharepoint工作流任务权限问题

情况一:针对使用SharePoint Designer定制的工作流,或者模板提供的工作流
我们可以使用EventHandler扩展的方法,在新建任务的任务列表ItemAdded EventHandler中,加入权限控制语句
把当前item的权限只分配给任务Assign To 对象,或者赋给其它用户只读的权限

Code
private void SetOwnerAsOnlyEditor(SPListItem item)
      {
            SPWeb myweb1 = item.Web;

            /**//**/
            /**/////get the task owner from the item. 'Assigned To' is a built-in property, so it should be in all lists.
            string authorValue = item["Assigned To"].ToString();

            SPFieldUserValue authorUserValue = new SPFieldUserValue(myweb1, authorValue);

            SPUser authorUser = authorUserValue.User;

            //break the security of the item from the list, but keep the permissions

            item.BreakRoleInheritance(true);

            SPRoleAssignment roleassignment = new SPRoleAssignment(authorUser.LoginName, authorUser.Email, authorUser.Name, authorUser.Name);
            roleassignment.RoleDefinitionBindings.Add(myweb1.RoleDefinitions["Contribute"]);


            foreach (SPRoleAssignment roleAssignment in item.RoleAssignments)
            {
                //delete the existing permissions
                roleAssignment.RoleDefinitionBindings.RemoveAll();
                //add the reader permission

                //change the permissions of everyone with access to this item so they are readers only
                roleAssignment.RoleDefinitionBindings.Add(myweb1.RoleDefinitions["Read"]);
                roleAssignment.Update();
                //item.Update();

            }
            item.RoleAssignments.Add(roleassignment);
            item.Update();

      }  
源代码
情况二:针对使用VS2005编码定制的工作流
对CreateTask中的SpecialPermission属性进行赋值,将要授予权限的用户写入其中。
这里要注意的有两点:
1、要使用SpecialPermission,首先要定义一个全局公有变量
public HybridDictionary task1permission = new HybridDictionary();
2、要将这个新变量赋给CreateTask的SpecialPermission属性,方法是点击SpecialPermission属性旁边蓝色的感叹号,这是才会弹出绑定属性的窗口,才可以将此变量绑定。
  
  
  以上两点完成后,就可以实现权限的控制了。
关键代码是:
task1permission.Add(taskProps.AssignedTo, SPRoleType.Contributor);
  
页: [1]
查看完整版本: Sharepoint工作流任务权限问题