You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dynamics 365自定义实体门户创建记录时Created By显示System原因咨询

为什么Dynamics 365门户Web表单创建记录时Created By显示「System」?

这个问题我之前帮不少开发者排查过,核心原因是Dynamics 365门户的Web表单默认使用系统服务账号执行记录创建操作,而非提交表单的实际门户用户。下面我拆解具体原因和解决步骤:

核心原因

  • 门户服务账号的默认行为:当用户通过Web表单提交数据时,门户并不会直接用当前登录的门户用户身份调用Dynamics 365 API,而是使用专门的Portal App User系统账号执行写入操作,所以Created By字段会显示该系统账号(即你看到的「System」)。
  • 用户上下文未传递:如果Web表单未配置启用用户上下文,Dynamics 365无法识别提交表单的实际用户,只能 fallback 到系统账号完成创建。

解决步骤

1. 确认门户用户与Dynamics 365联系人的关联

提交表单的门户用户必须关联到Dynamics 365中的联系人记录:

  • 进入「门户管理」应用,找到「Web Users」,查看对应用户的Contact字段是否已关联到有效的Dynamics 365联系人。若未关联,手动绑定或触发门户与Dynamics 365的同步。

2. 启用Web表单的用户上下文

让门户传递当前用户的上下文到Dynamics 365:

  • 在「门户管理」应用中找到目标Web表单,进入其属性设置;
  • 找到Enable User Context选项,设置为Yes。此配置会让系统用当前登录用户关联的联系人身份创建记录,Created By将显示为该联系人。

3. 验证实体权限配置

确保关联的联系人对自定义实体有创建权限:

  • 进入Dynamics 365的Advanced Settings > Security > Security Roles;
  • 找到分配给该联系人的安全角色,检查是否对目标自定义实体授予了Create权限。权限不足时,系统会自动切换到系统账号执行操作。

4. 检查Web表单步骤的字段映射

避免Created By字段被强制设置固定值:

  • 打开Web表单的对应步骤,查看字段映射配置;
  • 确保Created By字段未被手动设置默认值或固定值,留空让系统自动填充当前用户。

额外注意事项

  • 若为匿名用户提交表单,Created By显示「System」是正常行为——匿名用户没有关联的Dynamics 365联系人,系统只能用服务账号创建记录。
  • 若配置后问题仍存在,可启用门户调试日志,查看表单提交时的API调用细节,确认用户上下文是否正确传递。

内容的提问来源于stack exchange,提问作者Rohit Kharade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:55:22