共用方式為


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 restoredotnet add package 命令支援互動式交換器。 和dotnet publishdotnet build沒有互動式開關。

MSBuild 中的驗證

與dotnet.exe類似,MSBuild.exe預設為非互動式,MSBuild.exe驗證機制為裝置流程。 若要允許還原暫停並等候驗證,請使用 msbuild -t:restore -p:NuGetInteractive="true"呼叫還原。

建立跨平台驗證外掛程式

您可以在 Microsoft 認證提供者外掛程式中找到範例實作。

外掛程式必須符合 NuGet 用戶端工具所設定的安全性需求。 作為驗證外掛程式之外掛程式的最低必要版本是 2.0.0。 NuGet 會與外掛程式執行交握,並查詢支持的作業宣告。 如需特定訊息的詳細資訊,請參閱 NuGet 跨平臺外掛程式 通訊協定訊息

NuGet 會設定記錄層級,並在適用時提供 Proxy 資訊給外掛程式。 只有在 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 外掛程式

請先參閱下列規格,再撰寫外掛程式。