工作流无法将任务分配给另一个Active Directory OU中的用户?
-
16-10-2019 - |
题
我正在尝试在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保存在分配给字段中。