У меня есть сайт, который использует Google Analytics и Google Maps. Обе эти службы имеют ключи API, которыми необходимо управлять в коде нашего сайта. Для Google Analytics у нас есть две учетные записи, реальная учетная запись и промежуточная учетная запись для тестирования отслеживания до обеда. Для Google Maps нам действительно нужен уникальный ключ API для каждого имени хоста. У нас есть несколько промежуточных доменов и локальных имен хостов, поэтому в коде наших карт довольно мало переключений для ключей 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, заключенным во вспомогательный класс.