Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In versie 4.8+ kunnen alle NuGet-clients (NuGet.exe, Visual Studio, dotnet.exe en MSBuild.exe) een verificatieinvoegtoepassing gebruiken die is gebouwd op het platformoverschrijdende invoegtoepassingenmodel van NuGet .
Verificatie in dotnet.exe
Visual Studio en NuGet.exe zijn standaard interactief. NuGet.exe bevat een schakeloptie om deze niet interactief te maken. Daarnaast vragen de NuGet.exe- en Visual Studio-invoegtoepassingen de gebruiker om invoer. In dotnet.exe is er geen prompt en is de standaardwaarde niet interactief.
Het verificatiemechanisme in dotnet.exe is apparaatstroom. Wanneer de herstel- of add-pakketbewerking interactief wordt uitgevoerd, worden de bewerkingsblokken en instructies aan de gebruiker verstrekt over het voltooien van de verificaties op de opdrachtregel. Wanneer de gebruiker de verificatie voltooit, wordt de bewerking voortgezet.
Maak de bewerking interactief door door te geven --interactive.
Momenteel ondersteunen alleen de expliciete dotnet restore en dotnet add package opdrachten een interactieve switch.
Er is geen interactieve schakelaar op dotnet build en dotnet publish.
Verificatie in MSBuild
Net als bij dotnet.exe is MSBuild.exe standaard niet-interactief en maakt het MSBuild.exe-verificatiemechanisme gebruik van apparaatstroom.
Als u wilt toestaan dat de herstelbewerking wordt onderbroken en wacht op verificatie, roept u herstel aan met msbuild -t:restore -p:NuGetInteractive="true".
Een invoegtoepassing voor platformoverschrijdende verificatie maken
Een voorbeeld van een implementatie vindt u in de invoegtoepassing Microsoft Credential Provider.
Het is erg belangrijk dat de invoegtoepassingen voldoen aan de beveiligingsvereisten die zijn vastgelegd door de NuGet-clienthulpprogramma's. De minimaal vereiste versie voor een authenticatie-invoegtoepassing is 2.0.0. NuGet voert de handshake uit met de invoegtoepassing en stelt vragen over de ondersteunde bewerkingsclaims. Raadpleeg de protocolberichten van de NuGet-invoegtoepassing voor meerdere platforms voor meer informatie over de specifieke berichten.
NuGet stelt het logboekniveau in en verstrekt proxygegevens aan de invoegtoepassing, indien van toepassing. Loggen naar de NuGet-console is alleen acceptabel nadat NuGet het logniveau heeft ingesteld op de plugin.
- Verificatiegedrag van .NET Framework-invoegtoepassing
In .NET Framework mogen de invoegtoepassingen een gebruiker vragen om invoer, in de vorm van een dialoogvenster.
- Verificatiegedrag van .NET Core-invoegtoepassing
In .NET Core kan een dialoogvenster niet worden weergegeven. De invoegtoepassingen moeten device flow gebruiken om te authenticeren. De invoegtoepassing kan logboekberichten verzenden naar NuGet met instructies voor de gebruiker. Houd er rekening mee dat logboekregistratie beschikbaar is nadat het logboekniveau is ingesteld op de invoegtoepassing. NuGet neemt geen interactieve invoer van de opdrachtregel.
Wanneer de client de invoegtoepassing aanroept met het commando 'Verificatiereferenties opvragen', moeten de invoegtoepassingen voldoen aan de interactiviteitsoptie en rekening houden met de dialoogvensteroptie.
De volgende tabel bevat een overzicht van de werking van de invoegtoepassing voor alle combinaties.
| IsNonInteractive | CanShowDialog | Gedrag van invoegtoepassingen |
|---|---|---|
| true | true | De IsNonInteractive-schakeloptie heeft voorrang op de dialoogvensterschakelaar. De invoegtoepassing mag niet blokkeren. |
| true | false | De IsNonInteractive-schakeloptie heeft voorrang op de dialoogvensterschakelaar. De invoegtoepassing mag niet blokkeren. |
| false | true | De invoegtoepassing kan indien nodig een dialoogvenster weergeven. Bijvoorbeeld interactieve aanmelding of accountselectie. |
| false | false | De invoegtoepassing mag/kan geen dialoogvenster weergeven. De plugin moet gebruik maken van device flow om te authenticeren door een instructiebericht via de logger te loggen. |
Vóór NuGet 7.0 zou NuGet altijd CanShowDialog instellen op 'false' op de dotnet-CLI en op 'true' voor MSBuild-restore.
Vanaf 7.0 wordt NuGet altijd ingesteld op CanShowDialog true, maar invoegtoepassingen moeten nog steeds detecteren wanneer grafische interfaces niet beschikbaar zijn.
Bijvoorbeeld bij het uitvoeren op Linux via een SSH-verbinding zonder X-doorsturen of een externe PowerShell-sessie.
Raadpleeg de volgende specificaties voordat u een plugin schrijft.