Получение данных из файла PAC - PullRequest
3 голосов
/ 06 октября 2010

Можно ли выполнить Javascript в файле PAC из приложения Windows .Net, чтобы вернуть прокси-сервер?

1 Ответ

2 голосов
/ 06 октября 2010

Поскольку файл автоконфигурации прокси является просто исходным файлом JavaScript, и вам нужно вызвать в нем метод, вы можете использовать компилятор JScript .NET (доступный в коде через JScriptCodeProvider ) и / или интерпретатор (через JScriptEvaluate ).

Компилятор: здесь приведен пример кода для компиляции кода JScript .NET в класс, а затем вызов метода дляэтот класс , который может хорошо подойти для того, что вы ищете.Обратите внимание, что он использует Reflection, поэтому он может доставить вам неприятности, если вы находитесь в среде с частичным доверием, такой как ASP.NET.Я не уверен, требуется ли Reflection для такого доступа, или это просто деталь реализации;если это проблема для вас, вы можете исследовать ее дальше или использовать вместо этого интерпретатор.

Интерпретатор: в этом примере интерпретирует код JScript с помощью Microsoft.JScript.Eval.JScriptEvaluate ,Так как ваш файл PAC определяет одну или несколько функций, он не вернет ничего полезного.Вам нужно добавить в конце строку, которая вызывает FindProxyForURL с нужными аргументами;тогда вы можете оценить всю эту строку и получить свой результат.Или, возможно, вы могли бы оценить PAC-файл, в котором была бы объявлена ​​функция, а затем вы могли бы оценить вызов этой функции (я не использовал JScriptEvaluate, поэтому я не знаю, переносятся ли глобальные переменные от одного вызова к следующему).).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...