Кроссплатформенный подключаемый модуль проверки подлинности NuGet
В версии 4.8+ все клиенты NuGet (NuGet.exe, Visual Studio, dotnet.exe и MSBuild.exe) могут использовать подключаемый модуль проверки подлинности, созданный на основе модели кроссплатформенных подключаемых модулей NuGet.
Проверка подлинности в dotnet.exe
Visual Studio и NuGet.exe по умолчанию являются интерактивными. NuGet.exe содержит переключатель, чтобы сделать его не интерактивным. Кроме того, подключаемые модули NuGet.exe и Visual Studio запрашивают у пользователя ввод. В dotnet.exe нет запроса, и значение по умолчанию не является интерактивным.
Механизм проверки подлинности в dotnet.exe — это поток устройств. При интерактивном выполнении операции восстановления или добавления пакета в командной строке будут предоставлены блоки операций и инструкции пользователю, как выполнить проверку подлинности. После завершения проверки подлинности пользователь продолжит операцию.
Чтобы сделать операцию интерактивной, следует передать --interactive
.
В настоящее время только явные dotnet restore
dotnet add package
команды поддерживают интерактивный коммутатор.
Интерактивный переключатель dotnet build
не включен и dotnet publish
.
Проверка подлинности в MSBuild
Как и dotnet.exe, MSBuild.exe по умолчанию является неактивным интерактивным механизмом проверки подлинности MSBuild.exe является поток устройства.
Чтобы разрешить восстановление приостановить и ждать проверки подлинности, вызовите восстановление с msbuild -t:restore -p:NuGetInteractive="true"
помощью.
Создание подключаемого модуля межплатформенной проверки подлинности
Пример реализации можно найти в подключаемом модуле поставщика учетных данных Майкрософт.
Очень важно, чтобы подключаемые модули соответствовали требованиям безопасности, установленным клиентскими средствами NuGet. Минимальная требуемая версия для подключаемого модуля проверки подлинности — 2.0.0. NuGet выполнит подтверждение с подключаемым модулем и запросит утверждения поддерживаемой операции. Дополнительные сведения об определенных сообщениях см. в сообщениях протоколах протокола подключаемых модулей NuGet.
NuGet устанавливает уровень журнала и предоставляет сведения о прокси-сервере подключаемому модулю при необходимости. Ведение журнала в консоли NuGet допустимо только после того, как NuGet установил уровень журнала для подключаемого модуля.
- поведение проверки подлинности подключаемого модуля платформа .NET Framework
В платформа .NET Framework подключаемые модули могут запрашивать пользователя для ввода в виде диалогового окна.
- Поведение проверки подлинности подключаемого модуля .NET Core
В .NET Core не удается показать диалоговое окно. Подключаемые модули должны использовать поток устройств для проверки подлинности. Подключаемый модуль может отправлять сообщения журнала в NuGet с инструкциями пользователю. Обратите внимание, что ведение журнала доступно после установки подключаемого модуля уровня журнала. NuGet не будет принимать интерактивные входные данные из командной строки.
Когда клиент вызывает подключаемый модуль с учетными данными проверки подлинности, подключаемые модули должны соответствовать переключателю интерактивности и уважать переключатель диалога.
В следующей таблице приведены сведения о том, как должен вести себя подключаемый модуль для всех сочетаний.
IsNonInteractive | CanShowDialog | Поведение подключаемого модуля |
---|---|---|
true | true | Переключение IsNonInteractive имеет приоритет над переключателем диалога. Подключаемый модуль не может появиться в диалоговом окне. Это сочетание допустимо только для подключаемых модулей платформа .NET Framework |
true | false | Переключение IsNonInteractive имеет приоритет над переключателем диалога. Подключаемый модуль не может блокироваться. Это сочетание допустимо только для подключаемых модулей .NET Core |
false | true | Подключаемый модуль должен отображать диалоговое окно. Это сочетание допустимо только для подключаемых модулей платформа .NET Framework |
false | false | Подключаемый модуль не может отображать диалоговое окно. Подключаемый модуль должен использовать поток устройств для проверки подлинности путем ведения журнала сообщения инструкции с помощью средства ведения журнала. Это сочетание допустимо только для подключаемых модулей .NET Core |
Прежде чем писать подключаемый модуль, обратитесь к следующим спецификациям.