Mengautentikasi umpan di Visual Studio dengan penyedia kredensial NuGet
Artikel
Ekstensi NuGet Visual Studio 3.6+ mendukung penyedia kredensial, yang memungkinkan NuGet untuk bekerja dengan umpan terautentikasi.
Setelah Anda menginstal penyedia kredensial NuGet untuk Visual Studio, ekstensi NuGet Visual Studio akan secara otomatis memperoleh dan menyegarkan kredensial untuk umpan yang diautentikasi seperlunya.
Dalam Visual Studio, NuGet menggunakan VsCredentialProviderImporter internal yang juga memindai penyedia kredensial untuk plug-in. Penyedia kredensial plug-in ini harus dapat ditemukan sebagai Eksport MEF tipe IVsCredentialProvider.
Dimulai dengan 4.8+ NuGet di Visual Studio juga mendukung plugin autentikasi lintas platform baru, tetapi mereka bukan pendekatan yang direkomendasikan karena alasan performa.
Catatan
Penyedia kredensial NuGet untuk Visual Studio harus diinstal sebagai ekstensi Visual Studio biasa dan akan memerlukan Visual Studio 2017 atau lebih tinggi.
Penyedia kredensial NuGet untuk Visual Studio hanya berfungsi di Visual Studio (bukan dalam dotnet restore atau nuget.exe). Untuk penyedia kredensial dengan nuget.exe, lihat Penyedia Kredensial nuget.exe.
Untuk penyedia kredensial di dotnet dan msbuild, lihat plugin lintas platform NuGet
Membuat penyedia kredensial NuGet untuk Visual Studio
Ekstensi NuGet Visual Studio 3.6+ mengimplementasikan CredentialService internal yang digunakan untuk memperoleh kredensial. CredentialService memiliki daftar penyedia kredensial bawaan dan plug-in. Setiap penyedia dicoba secara berurutan sampai kredensial diperoleh.
Selama akuisisi kredensial, layanan kredensial akan mencoba penyedia kredensial dalam urutan berikut, berhenti segera setelah kredensial diperoleh:
Kredensial akan diambil dari file konfigurasi NuGet (menggunakan SettingsCredentialProviderbawaan ).
Penyedia kredensial Visual Studio akan dicoba secara berurutan.
Cobalah untuk menggunakan semua penyedia kredensial lintas platform NuGet secara berurutan.
Jika belum ada kredensial yang diperoleh, pengguna akan dimintai kredensial menggunakan dialog autentikasi dasar standar.
Untuk membuat penyedia kredensial NuGet untuk Visual Studio, buat Ekstensi Visual Studio yang mengekspos Ekspor MEF publik yang mengimplementasikan jenis IVsCredentialProvider, dan mematuhi prinsip yang diuraikan di bawah ini.
Setiap penyedia kredensial NuGet untuk Visual Studio harus:
Tentukan apakah dapat memberikan kredensial untuk URI yang ditargetkan sebelum memulai akuisisi kredensial. Jika penyedia tidak dapat memberikan kredensial untuk sumber yang ditargetkan, maka penyedia harus mengembalikan null.
Jika penyedia menangani permintaan untuk URI yang ditargetkan, tetapi tidak dapat menyediakan kredensial, pengecualian harus dilemparkan.
Penyedia kredensial NuGet kustom untuk Visual Studio harus mengimplementasikan antarmuka IVsCredentialProvider yang tersedia di paket NuGet.VisualStudio .
GetCredentialAsync
Parameter Masukan
Deskripsi
Uri uri
Uri sumber paket yang diminta kredensialnya.
Proksi IWebProxy
Proksi web yang akan digunakan saat berkomunikasi pada jaringan. Null jika tidak ada autentikasi proksi yang dikonfigurasi.
bool isProxyRequest
Benar jika permintaan ini adalah untuk mendapatkan kredensial autentikasi proksi. Jika implementasi tidak valid untuk memperoleh kredensial proksi, maka null harus dikembalikan.
bool isRetry
Benar jika kredensial sebelumnya diperlukan untuk Uri ini, tetapi kredensial yang disediakan tidak mengizinkan akses yang terotorisasi.
bool tidak interaktif
Jika true, penyedia kredensial harus menekan semua permintaan pengguna dan menggunakan nilai default sebagai gantinya.
When building apps for work, you typically integrate with secured APIs. Learn about the two common ways of how APIs are secured – API key and OAuth2, and how to integrate with them when building an API plugin for declarative agents that run in Microsoft 365 Copilot.