Я работаю над проектом по развертыванию проекта с помощью clickonce. Веб-сайт, на котором размещены эти файлы, будет принимать только HTTPS-трафик, и если вы попытаетесь подключиться через HTTP, наш агент siteminder перенаправит вас в форму входа HTTPS. Мы не можем отключить агент Siteminder или включить HTTP по соображениям безопасности.
В файле приложения у меня есть кодовая база, которая ссылается на абсолютный путь к манифесту, и это через HTTPS
<dependency>
<dependentAssembly dependencyType="install" codebase="https://psaportal.ilab.test.com/testprinting/Application_Files/testprint_1_0_0_1/testprint.exe.manifest" size="10147">
<assemblyIdentity name="testprint.exe" version="1.0.0.1" publicKeyToken="9a078649ee05e0e7" language="neutral" processorArchitecture="msil" type="win32" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<dsig:DigestValue>2nch1T0SmlAycmePobtg9F1qF7c=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
При запуске wireshark и декодировании трафика SSL (я использую закрытый ключ сервера в wireshark для расшифровки трафика SSL). Я вижу запрос к файлу манифеста приложения через HTTPS (это хорошо). Но когда clickonce пытается загрузить testprint.exe.deploy и другие соответствующие файлы, это всегда происходит через HTTP, и siteminder подключается и перенаправляет запросы, которые завершают установку clickonce с ошибками.
Я попытался указать абсолютную ссылку на кодовую базу в файле манифеста, но затем я начинаю получать ошибки точки входа, когда манифест загружается установщиком Clickonce.
Текущий раздел зависимостей из файла манифеста выглядит следующим образом:
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="testprint.exe" size="107008">
<assemblyIdentity name="testprint" version="1.0.0.1" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<dsig:DigestValue>dm2nJsu/5UyaEXSDmnISwfnE9MM=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
Я подтвердил, что веб-сайт, на котором файлы приложения, манифеста и развертывания находятся по одному и тому же URL-адресу, а сертификат SSL является действительным сертификатом.
Мы опробовали каждую комбинацию создания файлов приложений и манифестов, когда мы придумываем и ищем другие решения.
Приложение использует .NET 3.5, и мы попытались собрать файлы приложения и манифеста через VS2008, VS2010 и mage безуспешно.
Кто-нибудь знает, как заставить все файлы развертывания всегда загружаться через HTTPS?