我有一個網站可同時使用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