В настоящее время я работаю над приложением .Net, которое отправляет HTTP-запросы некоторым веб-приложениям, размещенным на сервере IIS. Приложение развертывается через ClickOnce и отлично работает на простых сетевых архитектурах.
У одного из наших клиентов очень сложная сеть, включающая пользовательский сервер аутентификации, на котором пользователь должен сначала войти в систему, чтобы пройти аутентификацию и получить доступ к другим приложениям в этой сети. После аутентификации на этом сервере файл cookie сеанса создается и отправляется пользователю. Каждый раз, когда пользователь отправляет запрос на защищенный сервер сети, этот файл cookie проверяется для предоставления доступа пользователю. Если этот файл cookie не отправлен вместе с запросом, пользователь перенаправляется на страницу входа. Единственный используемый браузер - Internet Explorer.
Этот файл cookie не может быть доступен из нашего приложения .net, поскольку он выполняется в другом процессе, отличном от процесса Internet Explorer, который использовался для входа пользователя в систему, и, следовательно, не отправляется с нашими запросами, которые не могут быть завершены, поскольку сервер перенаправляет каждый из наши запросы к странице входа.
Я посмотрел, как встроить свое приложение в Internet Explorer, сделав видимым основной элемент управления COM и создав его на HTML-странице с тегом. Он работает правильно, однако куки-файлы сеансов, установленные ранее в браузере, не отправляются, когда элемент управления ActiveX отправляет веб-запросы.
Я надеялся, что этот обмен информацией о сеансе будет автоматическим (хотя я действительно не верил в это). Итак, мои вопросы: возможно ли иметь доступ к этому cookie во встроенном ActiveX? Как? Имеет ли смысл использовать компонент COM-взаимодействия .Net вместо «истинного» элемента управления ActiveX? Кроме того, существуют ли специальные защитные слова для описания такого поведения (учитывая, что я вообще не являюсь экспертом в вопросах безопасности, отсутствие надлежащей терминологии значительно усложняет поиск необходимых ресурсов)?
Моя цель состоит в том, чтобы запросы моего приложения выглядели одинаково с запросами, сделанными запросами хост-браузера, и я подумал, что встраивание приложения в качестве элемента управления ActiveX в браузер было единственным способом добиться этого, однако любое предложение по добро пожаловать другой.