Composer 中的 ThingWorx 模型定义 > 建模 > 事物模板 > 远程模板 > 事物存在 > 事物存在报告策略事物:安全设置
事物存在报告策略事物:安全设置
安全至关重要。请确保您的 ThingWorx 用户使用所需的最低可见性、设计时和运行时权限进行配置。另外,请确保平台自动执行的所有服务都是在具有所需最低权限的用户上下文中完成的。
策略事物的 RunAsUser 配置
报告策略具备配置字段 RunAsUser,以赋予其执行平台操作的权限。默认情况下,此配置的值为不具备任何权限的内置用户。
如果自定义 ReportingStrategy 需要进一步访问平台,例如事物的属性值,则必须更改 RunAsUser 配置。出于安全考虑,仅管理员可以修改此项设置。为 RunAsUser 指定的用户需要策略事物所需的可见性和读取权限。
RunAsUser 配置故障排除
如果 RunAsUser 无效或不具备足够的权限,都会阻碍将设备标记为报告 (将 isReporting 设置为 true)。在任何报告评估失败后 (包括由 RunAsUser 不存在导致的错误或在尝试调用策略的 ReportingAlgorithm 过程中所产生的安全异常),日志消息都将显示在“应用程序日志”中。您可以直接调用设备事物上的 EvaluateReporting 来测试评估并监视日志中的消息。请注意,如果 isReporting 先前被设置为 true 且评估确定设备未正常连接,那么评估会将其设置为 false
服务安全摘要
服务
EntityOf
类型
说明
EvaluateReporting
可报告
设备事物
触发报告评估的入口点。适用于计时器、WebSocket 绑定和其他可能会影响设备连接状况的其他自定义事件。
此服务将其参数传递给 ReportingAlgorithm。建议使用此服务将信息传递到您的 ReportingAlgorithm
此服务可调用 ReportingStrategy.ReportingAlgorithm
SetReportingStrategy
可报告
设备事物
将设备上的 Strategy 属性更新为策略的 THINGNAME (设备将用其确定存在)。
ReportingAlgorithm
ReportingStrategy
策略事物
评估事物以确定存在。在策略的 RunAsUser 配置的用户上下文中执行,以防止未经授权的访问。
建议您将尽可能多的信息传递到 ReportingAlgorithm 作为参数 (至 EvaluateReporting),而不是从此服务中访问 ThingWorx 实体。
* 
此方法可以被覆盖。
ThingWorx 事件和 EvaluateReporting
在某些情况下,可能需要将 EvaluateReporting 服务作为 ThingWorx 事件的结果执行。例如,您可能希望在计时器首次触发时运行该服务。切记,ThingWorx 事件会在触发该事件的用户的上下文中执行。因此,这些用户必须具有执行 EvaluateReporting 服务以及随后调用 ReportingStrategy.ReportingAlgorithm 的相应权限。