我有一个MOSS工作流程,在第一个表单上,用户可以选择一位同事来评估他。假设用户A选择用户B.
提交表单后,将为用户B创建一个新任务,以评估用户的A.
我的问题是我需要确保该任务只能由用户A访问,而不是用户B,也不能用于系统中的任何其他用户。
我尝试设置SpecialPermissions
属性,但是在实例化工作流时可以绑定属性,所以我仍然不知道用户A将选择哪个用户(在这种情况下是用户B),并且然后无法设置权限。
我还尝试更改SpecialPermissions
方法的MethodInvoking
属性,但MOSS不会关注新权限。
在工作流任务上设置权限的正确方法是什么?
答案 0 :(得分:0)
以下是我的工作方式......这是我分散在多个函数中的一小部分代码。
spListItem.BreakRoleInheritance(false);
foreach (SPRoleAssignment spRoleAssignment in spListItem.RoleAssignments)
{
if (!spRoleAssignment.RoleDefinitionBindings.Contains(this.workflowProperties.Web.RoleDefinitions.GetByType(SPRoleType.Administrator)))
{ // don't remove administrators
spRoleAssignment.RoleDefinitionBindings.RemoveAll();
spRoleAssignment.Update();
}
}
SPRoleDefinition roledefinition = web.RoleDefinitions.GetByType(SPRoleType.Contribute);
SPRoleAssignment myRoleAssignment = new SPRoleAssignment(accountName, "", "", "");
myRoleAssignment.RoleDefinitionBindings.Add(roledefinition);
spListItem.RoleAssignments.Add(myRoleAssignment);