Sharepoint 2010 SharePoint—如何将任务分配给';它不在系统中吗?

Sharepoint 2010 SharePoint—如何将任务分配给';它不在系统中吗?,sharepoint-2010,user-accounts,Sharepoint 2010,User Accounts,我必须以编程方式为未显式添加到站点用户中的用户创建任务。不过,他有权参与任务列表,因为他属于已被授予这些权限的广告组。我可以通过UI将任务分配给用户;但是我如何通过代码来实现呢 向用户分配任务的公认方法是将任务的AssignedTo字段设置为指向该用户的SPFieldUserValue。除非在这种情况下无法执行,因为在SharePoint中找不到用户,只有他的组!显然,把任务分配给整个小组是个坏主意。而且我们的系统管理员断然拒绝将用户逐个添加到Sharepoint,因为这样会复制他们在Activ

我必须以编程方式为未显式添加到站点用户中的用户创建任务。不过,他有权参与任务列表,因为他属于已被授予这些权限的广告组。我可以通过UI将任务分配给用户;但是我如何通过代码来实现呢


向用户分配任务的公认方法是将任务的
AssignedTo
字段设置为指向该用户的
SPFieldUserValue
。除非在这种情况下无法执行,因为在SharePoint中找不到用户,只有他的组!显然,把任务分配给整个小组是个坏主意。而且我们的系统管理员断然拒绝将用户逐个添加到Sharepoint,因为这样会复制他们在Active Directory中的数据,并且通常是一个难以管理的问题。我该怎么办?

当用户对SharePoint进行身份验证时,会在配置文件存储中为他们创建一个条目,即使他们对网站的权限来自广告组

我做了一个快速测试,在我的广告中添加了新用户(TGroupsUser)和组(SPtestPermissions),因此该用户以前不可能出现在我的网站上。我将用户添加到组中,并授予组“成员”对我的站点的权限。然后我用这个新用户向SP进行了身份验证

为了显示用户是这个SPWeb的一部分,我编写了一个快速web部件来枚举web上的用户。请注意,SPWeb有三组用户。所有用户、站点用户和用户。有关这些属性的完整描述,请参见此。基本上,用户就是网络上的用户。网站用户是网站集上的用户和组。“所有用户”是指网站的所有用户,包括被授予直接权限或通过组授予权限然后访问网站的用户。以下是结果,减去系统帐户

所有用户 SPSDEV\r\n错误 SPSDEV\sptestpermissions SPSDEV\t组用户

网站用户 SPSDEV\r\n错误 SPSDEV\sptestpermissions SPSDEV\t组用户

用户 SPSDEV\r\n错误

由于此帐户(TgroupsUser)是web用户集合的一部分,因此您可以将其视为直接添加到站点的用户。为了完成测试,我使用以下代码为assignedTo字段创建了一个任务

TaskItem[SPBuiltInFieldId.AssignedTo] = web.SiteUsers.GetByEmail("myemail@domain.com");
下面是分配给TGroupsUser的新任务的屏幕截图。

仅供参考-我需要在web对象上使用AllowUnsafeUpdate