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 publish
上dotnet 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 外掛程式 |
請先參閱下列規格,再撰寫外掛程式。