我正在尝试在VS 2010工作流中创建任务,并将其分配给我们的域用户之一。这个人不是网站收集用户,但我假设他会自动添加他。他还位于南非某个地方的另一家公司分支机构。我正在使用的代码类似

    private void CreateTask_MethodInvoking(object sender, EventArgs e)
    {
        TaskProps = new SPWorkflowTaskProperties();
        TaskId = Guid.NewGuid();

        TaskProps.AssignedTo = @"MYDOMAIN\username";
        TaskProps.Title = "Sample task";
    }

一旦我部署并运行工作流程,任务就会很好地创建,但是“分配给”字段为空白。事件日志显示“用户不存在或不是唯一的。”

此外,如果我手工创建一个任务,并将mydomain 用户名放在“分配给”字段中,则不会出现任何问题,并且用户将导入到网站集合中。之后,工作流程正常运行。但是,手动将200+域用户中的每个用户添加到网站集合中不是一个选择。建议?

有帮助吗?

解决方案

将用户添加到网站集合的假设是不正确的。您不能将任务分配给网站集合中没有Permissiosn的用户,但是您不必手动添加每个用户。

  • 如MBSURF所建议的那样,并将用户添加到代码中
  • 将所有用户放在AD中的组中(如果您还没有)并将组分配到SharePoint网站
  • 授予任务列表的“所有身份验证的用户”权限,以便可以将任务分配给任何人...

其他提示

在苔藓中,我会做以下类似的事情:

        SPUser spUser = null;

        try
        {
            // Attempt to get the user first
            spUser = userCollection[user];
        }
        catch (Exception)
        {
            // The User does not exist, so we need to add them
            userCollection.Add(user, string.Empty, user, string.Empty);
            spUser = userCollection[user];
        }

然后,我将Spuser保存在分配给字段中。

许可以下: CC-BY-SA归因
scroll top