更新经典桌面应用程序的Application Insights检测密钥的最佳实践

时间:2018-01-12 15:21:05

标签: c# wpf azure-application-insights

问题......

我们有一个经典的" Windows桌面应用程序(WPF),它通过Application Insights发送遥测数据。检测密钥当前与应用程序一起部署。为简单起见,我们假设它是硬编码的; - )

最近我们发现,如果我们删除了azure中的Application Insights资源,则无法恢复。因此,仪器密钥丢失了。但是,我们当然可以成为一个新实例。但仪器仪表的关键是不同的。如何在我们所有现有装置(现场)上更改仪表键?

到目前为止

解决方案

而不是"硬编码"仪表键,我们从"云"通过azure functions。我们进行REST调用以获取检测密钥。显然现在这个函数的URL是硬编码而不是密钥本身。如果检测密钥发生变化,我们可以在此功能中更新它,而无需创建我们软件的新版本并更新所有客户。

这有效。但是......

...有没有(更简单的)其他方式来解决这个问题?也许已经有内置方法,API等可以做到这一点?

任何想法都表示赞赏

1 个答案:

答案 0 :(得分:2)

通过REST从远程服务或API获取密钥的解决方案是可行的。客户端应用程序还可以连接到某种遥测服务,该服务又与Azure通信并存储密钥。然后客户端只需知道REST服务的地址,也可能知道如何授权自己。

另一种解决方案是在应用程序配置文件中指定密钥,并告诉最终用户自己更新配置文件,或者在更改检测密钥时提供更新的配置文件。这至少可以使您不必重建和重新部署二进制文件。显然,如果您将密钥硬编码到代码中,则需要执行此操作。