Подписанное приложение WPF, установленное из подписанного MSIX, все еще работает из ненадежного местоположения

У меня есть действующий сертификат подписи кода. Я использую его для подписи приложения WPF. Это приложение будет запускаться от имени администратора. У него есть действующий app.manifest.

  <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
  </requestedPrivileges>

Файл MSIX был создан с помощью средства упаковки MSIX. Я подписал пакет приложения MSIX тем же сертификатом. Эти возможности есть в манифесте appx.

<Capabilities>
    <Capability Name="internetClient" />
    <rescap:Capability Name="runFullTrust" />
    <rescap:Capability Name="allowElevation" />
</Capabilities>

Я устанавливаю файл MSIX на компьютер с Windows 10 Pro с версией 1903. Он устанавливается правильно и указывает на то, что это надежное приложение. Когда я запускаю приложение, я вижу желтое предупреждение, этот файл запущен из ненадежного места. Я ожидаю увидеть синее предупреждение о повышении уровня UAC, потому что приложение подписано.

Я распаковал файл MSIX и убедился, что EXE подписан сертификатом подписи кода. Это. Я запустил EXE-файл и вижу правильное синее предупреждение о повышении прав UAC с названием компании из сертификата.

Почему Windows 10 считает, что приложение WPF запускается из ненадежного источника?


person Rob Galante    schedule 24.08.2020    source источник
comment
У меня есть обновление по этой проблеме. Одна из моих машин получила обновление Windows 10 до версии 2004. Теперь при запуске приложения видно правильное поведение. Так что это, должно быть, была ошибка в более ранних версиях Windows. Это очень плохо. Я не могу отправить его как пакет MSIX, если клиенты увидят это предупреждение о ненадежном местоположении.   -  person Rob Galante    schedule 25.08.2020


Ответы (1)


Прежде всего, если вы разрабатываете приложение с нуля, вам следует использовать проект упаковки приложений Windows из Visual Studio для создания пакета. Инструмент упаковки MSIX предназначен только для преобразования в приложения MSIX, для которых у вас нет исходного кода.

Стефан Вик из MSFT работал в этом районе и написал несколько очень полезных руководств по этой теме: https://stefanwick.com/tag/allowelevation/

Напишите мне в Twitter (если он еще не заметил этот вопрос), возможно, он расскажет подробнее.

Я подозреваю, что вы получаете это предупреждение, потому что приложение загружено неопубликованно (т. Е. Не установлено из MS Store), а также использует allowElevation.

Просто для тестирования. Можете ли вы удалить из пакета возможность allowElevation и переустановить ее, используя тот же сертификат? (Вероятно, вам нужно будет вручную запустить его как и admin, иначе он выйдет из строя).

person Bogdan Mitrache    schedule 25.08.2020
comment
Я использую проект упаковки приложений Wndows в Visual Studio 2019. Однако у него есть ряд проблем. Во-первых, он не берет файлы из целевого каталога приложения, на которое имеется ссылка. Он восстанавливает свое собственное. Во-вторых, он имеет состояние гонки и не дожидается завершения события после сборки приложения, прежде чем он создаст свой собственный целевой каталог с результатами. Событие пост-сборки подписывает приложение, но из-за этого состояния гонки его нужно добавлять вручную. Вот почему я использую MSIX Packaging Tool. Мне нужно вручную добавить подписанный EXE в пакет. - person Rob Galante; 25.08.2020