我有一个网站可同时使用Google Analytics和Google地图。这两种服务都有API密钥,需要在我们网站的代码中进行管理。对于Google Analytics(分析),我们有两个帐户,一个真实帐户和分期帐户,用于在午餐前测试跟踪。对于Google地图,我们实际上每个主机名都需要一个唯一的API密钥。我们有几个分期域和本地主机名,所以我们的地图代码有很多API键的切换。在ASP.NET中管理多种第三方API密钥
现在我管理我的钥匙在C#代码隐藏使用在Request.Url.Host
开关各自的网页:
// for analytics in file1
switch (Request.Url.Host) {
case "staging": ltlUACode.Text = "stageKey"; break;
case "client.stage.com": ltlUACode.Text = "stageKey"; break;
case "www.livesite.com": ltlUACode.Text = "liveKey"; break;
case "livesite.com": ltlUACode.Text = "liveKey"; break;
}
// for maps in file2
switch(Request.Url.Host) {
case "staging": GoogleMapsKey = "uniqueKey1"; break;
case "client.stage.com": GoogleMapsKey = "uniqueKey2"; break;
case "www.livesite.com": GoogleMapsKey = "uniqueKey3"; break;
// etc
}
我想知道什么更好的方法是跟踪所有这些键。我考虑了两个可能的事情,可以工作:
- 使用的应用程序设置在我
web.config
:一个问题在这里虽然是地图键更改往往是基于主机名(即用的映射键的许多变种将是一场噩梦管理) - 有一个C#类来处理所有基于主机名,这些项:我可以写对的分析键和映射关键属性静态类以及基于
Request.Url.Host
我可以在属性中设置自己的适当的价值。这个方法本质上是我的switch方法包装成一个辅助类。
这种方法的问题之一是,在同一IIS网站上有多个主机绑定,所以相同的代码呈现不同网址的同一站点。这正是我不能这样做的原因...... – 2010-04-21 14:55:51