我在 Dynamics 365 中自动创建应用程序用户。用户确实被创建了,但是当我稍后在代码中尝试为其分配角色时,我收到以下消息:The user Id(s) [a guid here] is invalid.
当我尝试从Dynamics Web UI,我得到了相同错误的变体:The user ID associated with the current record is not valid.
.
我在 C# 中使用 CrmServiceClient 连接到组织。
我在以编程方式创建用户时提供以下字段:
firstname
lastname
businessunitid
applicationid
internalemailaddress
我注意到的一件事是,当我通过 Web UI 查看用户时,我在创建时分配的应用程序 ID 没有显示出来。
这是我当前的代码:
private void SetUpPermissions()
{
var roleId = GetRoleId();
var userId = CreateApplicationUser();
CrmSvc.Associate(
"systemuser",
userId,
new Relationship("systemuserroles_association"),
new EntityReferenceCollection {
new EntityReference("role", roleId)
});
}
private Guid CreateApplicationUser() => CrmSvc.CreateNewRecord("systemuser", new Dictionary<string, CrmDataTypeWrapper>
{
{ "firstname", new CrmDataTypeWrapper(ProposalManagerApplicationName, CrmFieldType.String) },
{ "lastname", new CrmDataTypeWrapper("Application", CrmFieldType.String) },
{ "businessunitid", new CrmDataTypeWrapper(BusinessUnitId.Value, CrmFieldType.Lookup) },
{ "applicationid", new CrmDataTypeWrapper(ApplicationId, CrmFieldType.Key) },
{ "internalemailaddress", new CrmDataTypeWrapper("testcrm3@mydomain.com", CrmFieldType.String) }
});
我希望该用户以与通过 UI 创建的应用程序用户相同的方式显示在 Web UI 中,但事实并非如此。它没有显示我在代码中分配给它的应用程序 ID,并且在尝试为其分配角色时会引发上述错误。
难道我做错了什么?如果答案得到现有文档的支持,请同时指出我的答案,以便我了解为什么我没有找到它。