Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In Version 3.3 wurde die Unterstützung für nuget.exe spezifische (v1) Anmeldeinformationsanbieter hinzugefügt. Seitdem wurde die Unterstützung für (v2) Credential Provider hinzugefügt, die in allen Befehlszeilenszenarien (, nuget.exe, dotnet.exe) funktionieren.
Weitere Informationen zu allen Authentifizierungsansätzen finden Sie unter Verwenden von Paketen aus authentifizierten Feeds .
nuget.exe Erkennung des Anmeldeinformations-Anbieters
nuget.exe Anmeldeinformationsanbieter können auf drei Arten verwendet werden:
Global: Um einen Anmeldeinformationsanbieter für alle Instanzen von
nuget.exe, die unter dem Profil des aktuellen Benutzers ausgeführt werden, verfügbar zu machen, fügen Sie ihn zu%LocalAppData%\NuGet\CredentialProvidershinzu. Möglicherweise müssen Sie denCredentialProvidersOrdner erstellen. Anmeldeinformationsanbieter können im Stammverzeichnis desCredentialProvidersOrdners oder in einem Unterordner installiert werden. Wenn ein Anbieter von Anmeldeinformationen über mehrere Dateien/Assemblys verfügt, können Sie Unterordner verwenden, um die Anbieter zu organisieren.Aus einer Umgebungsvariable: Anmeldeinformationsanbieter können überall gespeichert und
%NUGET_CREDENTIALPROVIDERS_PATH%zugänglich gemacht werden, indem dienuget.exeUmgebungsvariable auf den Speicherort des Anbieters festgelegt wird. Diese Variable kann eine durch Semikolons getrennte Liste sein (z. B.path1;path2), wenn Sie mehrere Standorte haben.Neben nuget.exe: Anmeldeinformationsanbieter für nuget.exe können im gleichen Ordner wie
nuget.exeabgelegt werden.
Beim Laden von Anmeldeinformationsanbietern durchsucht nuget.exe in der Reihenfolge die oben genannten Speicherorte nach einer Datei namens credentialprovider*.exe, und diese Dateien werden dann in der Reihenfolge geladen, in der sie gefunden werden. Wenn mehrere Anmeldeinformationsanbieter im selben Ordner vorhanden sind, werden sie in alphabetischer Reihenfolge geladen.
Erstellen eines nuget.exe-Anmeldeinformationsanbieters
Ein Anmeldeinformationsanbieter ist eine ausführbare Befehlszeile, die im Formular CredentialProvider*.exegenannt wird, die Eingaben sammelt, Anmeldeinformationen nach Bedarf erwirbt und anschließend den entsprechenden Ausgangsstatuscode und die Standardausgabe zurückgibt.
Ein Anbieter muss folgendes ausführen:
- Bestimmen Sie, ob die Anmeldedaten für den zielgerichteten URI bereitgestellt werden können, bevor Sie die Erfassung der Anmeldedaten initiieren. Wenn nicht, sollte der Statuscode 1 ohne Anmeldeinformationen zurückgegeben werden.
- Nicht ändern
NuGet.Config(z. B. Festlegen von Anmeldeinformationen). - Behandeln Sie die HTTP-Proxykonfiguration eigenständig, da NuGet keine Proxyinformationen für das Plug-In bereitstellt.
- Anmeldeinformationen oder Fehlerdetails an
nuget.exezurückgeben, indem ein JSON-Antwortobjekt (siehe unten) unter Verwendung der UTF-8-Codierung an die Standardausgabe geschrieben wird. - Geben Sie optional zusätzliche Protokollierung zur Ablaufverfolgung an stderr aus. Keine Geheimnisse sollten jemals zu stderr geschrieben werden, da diese Logs auf Ausführlichkeitsebenen "normal" oder "detailliert" von NuGet an die Konsole wiedergegeben werden.
- Unerwartete Parameter sollten ignoriert werden, wodurch die Vorwärtskompatibilität mit zukünftigen Versionen von NuGet bereitgestellt wird.
Eingabeparameter
| Parameter/Schalter | Description |
|---|---|
| URI {value} | Der Paketquell-URI, der Anmeldeinformationen erfordert. |
| Nicht interaktiv | Wenn vorhanden, gibt der Anbieter keine interaktiven Eingabeaufforderungen aus. |
| IsRetry | Wenn vorhanden, gibt an, dass dieser Versuch ein Wiederholungsversuch eines zuvor fehlgeschlagenen Versuchs ist. Anbieter verwenden dieses Flag in der Regel, um sicherzustellen, dass sie vorhandenen Cache umgehen und ggf. zur Eingabe neuer Anmeldeinformationen auffordern. |
| Ausführlichkeit {value} | Wenn vorhanden, einer der folgenden Werte: "normal", "still" oder "detailliert". Wenn kein Wert angegeben wird, wird standardmäßig "normal" verwendet. Anbieter sollten dies als Hinweis auf die Ebene der optionalen Protokollierung verwenden, die an den Standardfehlerstrom ausgegeben werden soll. |
Exitcodes
| Code | Ergebnis | Description |
|---|---|---|
| 0 | Success | Die Anmeldeinformationen wurden erfolgreich erworben und wurden in Stdout geschrieben. |
| 1 | AnbieterNichtAnwendbar | Der aktuelle Anbieter stellt keine Anmeldeinformationen für den angegebenen URI bereit. |
| 2 | Failure | Der Anbieter ist der richtige Anbieter für den angegebenen URI, kann jedoch keine Anmeldeinformationen angeben. In diesem Fall wird nuget.exe die Authentifizierung nicht erneut versuchen und schlägt fehl. Ein typisches Beispiel ist, wenn ein Benutzer eine interaktive Anmeldung abbricht. |
Standardausgabe
| Eigentum | Hinweise |
|---|---|
| Nutzername | Benutzername für authentifizierte Anfragen. |
| Kennwort | Passwort für authentifizierte Anforderungen. |
| Nachricht | Optionale Details zur Antwort, die nur verwendet werden, um zusätzliche Details in Fehlerfällen anzuzeigen. |
Beispiel stdout:
{ "Username" : "freddy@example.com",
"Password" : "bwm3bcx6txhprzmxhl2x63mdsul6grctazoomtdb6kfbof7m3a3z",
"Message" : "" }
Problembehebung bei einem Anmeldeinformationsanbieter
Derzeit bietet NuGet keine große direkte Unterstützung für das Debuggen von benutzerdefinierten Anmeldeinformationsanbietern; Problem 4598 verfolgt diese Arbeit.
Sie können auch die folgenden Aktionen ausführen:
Führen Sie nuget.exe mit dem
-verbositySchalter aus, um die detaillierte Ausgabe zu prüfen.Fügen Sie an entsprechenden Stellen Debugnachrichten zu
stdouthinzu.Stellen Sie sicher, dass Sie nuget.exe 3.3 oder höher verwenden.
Debugger beim Start anhängen mit diesem Codeausschnitt:
while (!Debugger.IsAttached) { System.Threading.Thread.Sleep(100); } Debugger.Break();