Установка серверной переменной HTTP_X_FORWARDED_FOR в классическом ASP
Мне нужно установить значение HTTP_X_FORWARDED_FOR в коллекции Request.ServerVariables. Я пытаюсь с Fiddler (см. Эту статью).
Поэтому я настроил собственный HTTP-запрос:
GET http://myhost/ HTTP/1.1 http_x_forwarded_for: my.fake.ip.1, my.fake.ip.2 Host: myhost.
Запрос правильно выполнен.
Но когда я отлаживаю код, Request.ServerVariables("HTTP_X_FORWARDED_FOR") будет пустым. Где я не прав? Является ли Fiddler правильным инструментом?
1 ответ
Заголовок, который вы отправляете, должен быть x-forwarded-for
, Request.ServerVariables
это именно то, что говорит серверные переменные. Он не только содержит заголовки http, отправленные в запросе.
При помещении значений заголовка в переменные сервера IIS создает имя переменной, основанное на имени заголовка, но не дословно. Преобразует все символы в верхний регистр, заменяет все -
с _
и добавляет префикс HTTP_
в заголовок, чтобы создать имя переменной сервера. Префикс добавлен для предотвращения наложения произвольных заголовков на имена других фиксированных серверных переменных.