首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在ASP.NET中管理许多第三方API键的变体

在ASP.NET中管理许多第三方API键的变体
EN

Stack Overflow用户
提问于 2010-04-19 16:46:09
回答 2查看 469关注 0票数 2

我有一个利用谷歌分析和谷歌地图的网站。这两个服务都有API密钥,需要在我们站点的代码中进行管理。对于,我们有两个帐户,一个实时帐户和一个暂存帐户来测试午餐前的跟踪。对于Google,实际上每个主机名都需要一个惟一的API密钥。我们有几个暂存域和本地主机名,所以我们的地图代码有相当多的API键切换。

现在,我正在使用C#上的开关管理各自页面的Request.Url.Host代码隐藏的密钥。

代码语言:javascript
运行
复制
// 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
}

我想知道更好的方法是跟踪所有这些钥匙。我考虑了两种可行的方法:

  1. 在我的web.config中使用应用程序设置:不过,这里的一个问题是,地图键经常根据主机名变化(例如,映射键的许多变体将是管理的噩梦)
  2. 有一个C#类来根据主机名处理所有这些键:我可以编写一个静态类,该类具有用于分析键和映射键的属性,而基于Request.Url.Host,我可以将属性设置为它们的适当值。这个方法本质上是我的开关方法,它封装在一个助手类中。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-19 16:57:59

两者兼备:

因为它们不是真正的代码,所以将域=> ApiKey对存储在web配置中。对于大型的类似web.config设置块,这对创建自定义节和处理程序很有帮助。这里额外工作的好处是,您可以扩展自定义节处理程序的功能,以返回基于环境的正确值。

创建一个自定义节类型,然后为每个api键(映射、分析等)添加一个节(该类型)。

票数 0
EN

Stack Overflow用户

发布于 2010-04-19 17:03:07

我通常将它们拆分到它们自己的文件中,然后根据它们的位置部署不同的配置文件。

web.config

代码语言:javascript
运行
复制
   <appSettings configSource="Host1.config">
        </appSettings>

c#

代码语言:javascript
运行
复制
System.Configuration.ConfigurationManager.AppSettings(fieldname)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2669210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档