【问题标题】:Where is Episerver Salesforce connector configuration saved?Episerver Salesforce 连接器配置保存在哪里?
【发布时间】:2019-05-29 17:19:41
【问题描述】:

使用运行 Episerver 和 Salesforce 插件的站点,将 Episerver 表单与 Salesforce 绑定。我在 episerver 后端的 salesforce 连接器配置屏幕中为我的 salesforce 用户输入用户名/密码/令牌,它会保存我的凭据。我导航到表单,现在可以看到我的 salesforce 字段以将表单字段映射到。

问题是 salesforce 连接配置不断消失。一段时间后,当返回到 episerver 管理员中的 salesforce 连接器配置,或者转到一个表单并尝试映射字段时,salesforce 连接消失了,我的字段不再被映射。如果我重新添加连接,字段映射将返回。此配置保存在数据库中的什么位置以及可能导致它被覆盖的原因是什么?有没有办法在 web config 中配置默认​​值?

相关包裹详情:

EPiServer.CMS - v11.11.3

EPiServer.MarketingAutomationIntegration.Salesforce - v4.2.0

EPiServer.Marketing.Automation.Forms - v2.1.0

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

select * from dbo.tblBigTable where String01 like '%my-connector-name%'
StoreName | ItemType | String01 | String02
Marketing_Automation_Connector_Credentials |
Episerver.Marketing.Connector.Framework.Data.ConnectorCredentialStoreData, Episerver.Marketing.Connector, Version=5.4.0.0, Culture=neutral, PublicKeyToken=null |
my-connector-name | 
!!=!encrypt!=!!0...

select * from dbo.tblBigTableReference where StringValue like '%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

【问题讨论】:

  • 我们在本地运行我们的站点并使用与我们的 DEV 环境相同的数据库。每当有人在本地运行该站点时,这似乎就会被清除。我还注意到 salesforce 模块在此处有一个配置文件,但在此文件中配置的内容不多:\solution\CMS\modules_protected\Episerver.Marketing.Connector.Salesforce\module.config

标签: salesforce episerver


【解决方案1】:

问题原因:

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

解决方法:

要解决这个问题,您可以在 web.config 中添加 machineKey 标签,以便在本地和开发环境之间共享解密密钥:

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-25
  • 2021-02-21
  • 2011-11-13
  • 1970-01-01
  • 2012-04-16
  • 1970-01-01
  • 2016-10-06
相关资源
最近更新 更多