Episerver Salesforce连接器配置保存在哪里?

Episerver Salesforce连接器配置保存在哪里?,salesforce,episerver,Salesforce,Episerver,使用运行带有Salesforce附加组件的Episerver的站点将Episerver表单绑定到Salesforce。我在episerver后端的salesforce connector配置屏幕中输入salesforce用户的用户名/密码/令牌,它会保存我的凭据。我导航到表单,现在可以看到要将表单字段映射到的salesforce字段 问题是salesforce连接配置一直在消失。在episerver admin中返回salesforce连接器配置,或转到表单并尝试映射字段时,salesforce

使用运行带有Salesforce附加组件的Episerver的站点将Episerver表单绑定到Salesforce。我在episerver后端的salesforce connector配置屏幕中输入salesforce用户的用户名/密码/令牌,它会保存我的凭据。我导航到表单,现在可以看到要将表单字段映射到的salesforce字段

问题是salesforce连接配置一直在消失。在episerver admin中返回salesforce连接器配置,或转到表单并尝试映射字段时,salesforce连接消失,并且不再映射我的字段。如果我重新添加连接,字段映射将返回。此配置保存在数据库中的何处?是什么导致它被覆盖?有没有办法在web配置中配置默认值

相关套餐详情:

epserver.CMS-v11.11.3

epserver.MarketingAutomationIntegration.Salesforce-v4.2.0

epserver.Marketing.Automation.Forms-v2.1.0

编辑: 看起来salesforce连接器设置已保存到dbo.tblBigTable和dbo.tblBigTableReference。当我在本地运行项目时,这些记录会在项目启动时被清除,但仍然不知道为什么。我可以在不清除这些记录的情况下重新启动dev服务器: 运行类似于以下内容的程序将显示连接器名称部分的保存位置。这些表中可能有其他配置字段的条目

select * from dbo.tblBigTable where String01 like '%my-connector-name%'
从dbo.tblBigTableReference中选择*,其中StringValue类似于“%my connector name%”

Type | PropertyName | CollectionType | ElementType | StringValue

3 | ActiveConnectors | 
System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | 
System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | 
my-connector-name

问题原因:

我最终不得不反编译epserver的源代码来发现问题。事实证明,问题出在EPiServer的EPiServer.Marketing.Connector.Framework.MarketingConnectorManager.GetConnectorCredentials方法中,因此这可能不是Salesforce连接器特有的,而是任何营销连接器。问题是,当在我们的开发环境中创建凭据时,它们在数据库中被加密。当稍后在本地实例中获取凭据时,将尝试解密凭据。如果凭据无法解密,EPiServer将删除它们,而不是抛出错误或说找不到有效凭据

解决方法:

要解决此问题,可以向web.config添加machineKey标记,以便在本地和开发环境之间共享解密密钥:

<system.web>
        <machineKey validationKey="YOUR_VALIDATION_KEY_HERE" decryptionKey="YOUR_ENCRYPTION_KEY_HERE" validation="SHA1" decryption="AES" />
        ....
</system.web>

....

我们在本地运行站点,并使用与开发环境相同的数据库。似乎每当有人在本地运行该站点时,这些信息就会被清除。我还注意到,salesforce模块在此处有一个配置文件,但在该文件中没有看到太多关于配置的内容:\solution\CMS\modules\u protected\Episerver.Marketing.Connector.salesforce\module.config连接器的文档现已由Episerver团队更新,以包括详细的加密说明:
<system.web>
        <machineKey validationKey="YOUR_VALIDATION_KEY_HERE" decryptionKey="YOUR_ENCRYPTION_KEY_HERE" validation="SHA1" decryption="AES" />
        ....
</system.web>