NuGet çoklu platform kimlik doğrulaması eklentisi
Sürüm 4.8+'da, tüm NuGet istemcileri (NuGet.exe, Visual Studio, dotnet.exe ve MSBuild.exe) NuGet platformlar arası eklenti modelinin üzerinde oluşturulmuş bir kimlik doğrulama eklentisini kullanabilir.
dotnet.exe kimlik doğrulaması
Visual Studio ve NuGet.exe varsayılan olarak etkileşimlidir. NuGet.exe etkileşimli olmayan bir anahtar içerir. Ayrıca NuGet.exe ve Visual Studio eklentileri kullanıcıdan giriş ister. dotnet.exe hiçbir istem yoktur ve varsayılan değer etkileşimli değildir.
dotnet.exe kimlik doğrulama mekanizması cihaz akışıdır. Geri yükleme veya paket ekleme işlemi etkileşimli olarak çalıştırıldığında, işlem blokları ve kullanıcıya kimlik doğrulamalarının nasıl tamamlanacağına ilişkin yönergeler komut satırında sağlanır. Kullanıcı kimlik doğrulamasını tamamladığında işlem devam eder.
İşlemi etkileşimli hale getirmek için geçirilmelidir --interactive
.
Şu anda yalnızca açık dotnet restore
ve dotnet add package
komutlar etkileşimli bir anahtarı destekler.
ve dotnet publish
üzerinde etkileşimli bir anahtar dotnet build
yoktur.
MSBuild'de kimlik doğrulaması
dotnet.exe benzer şekilde, MSBuild.exe varsayılan olarak etkileşimli değildir ve MSBuild.exe kimlik doğrulama mekanizması cihaz akışıdır.
Geri yüklemenin duraklatılıp kimlik doğrulamasını beklemesine izin vermek için ile msbuild -t:restore -p:NuGetInteractive="true"
geri yüklemeyi çağırın.
Platformlar arası kimlik doğrulama eklentisi oluşturma
Örnek bir uygulama Microsoft Kimlik Bilgisi Sağlayıcısı eklentisinde bulunabilir.
Eklentilerin NuGet istemci araçları tarafından belirlenen güvenlik gereksinimlerine uyması çok önemlidir. Bir eklentinin kimlik doğrulama eklentisi olması için gereken en düşük sürüm 2.0.0'dır. NuGet, eklentiyle el sıkışmayı gerçekleştirir ve desteklenen işlem talepleri için sorgu yapar. Belirli iletiler hakkında daha fazla ayrıntı için lütfen NuGet platformlar arası eklenti protokol iletilerine bakın.
NuGet günlük düzeyini ayarlar ve uygun olduğunda eklentiye proxy bilgileri sağlar. NuGet konsolunda günlüğe kaydetme yalnızca NuGet günlük düzeyini eklenti olarak ayarladıktan sonra kabul edilebilir.
- .NET Framework eklentisi kimlik doğrulama davranışı
.NET Framework'te, eklentilerin bir kullanıcıdan iletişim kutusu biçiminde giriş istemesine izin verilir.
- .NET Core eklentisi kimlik doğrulama davranışı
.NET Core'da bir iletişim kutusu gösterilemez. Eklentiler kimlik doğrulaması için cihaz akışını kullanmalıdır. Eklenti, kullanıcıya yönergelerle nuGet'e günlük iletileri gönderebilir. Günlük düzeyi eklentiye ayarlandıktan sonra günlüğe kaydetmenin kullanılabilir olduğunu unutmayın. NuGet komut satırından etkileşimli giriş almaz.
İstemci eklentiyi Kimlik Doğrulaması Kimlik Bilgilerini Al ile çağırdığında, eklentilerin etkileşim anahtarına uyması ve iletişim kutusu anahtarına uyması gerekir.
Aşağıdaki tabloda eklentinin tüm birleşimler için nasıl davranması gerektiği özetlemektedir.
IsNonInteractive | CanShowDialog | Eklenti davranışı |
---|---|---|
true | true | IsNonInteractive anahtarı, iletişim kutusu anahtarından önceliklidir. Eklentinin iletişim kutusu oluşturmasına izin verilmiyor. Bu birleşim yalnızca .NET Framework eklentileri için geçerlidir |
true | yanlış | IsNonInteractive anahtarı, iletişim kutusu anahtarından önceliklidir. Eklentinin engellemesine izin verilmiyor. Bu birleşim yalnızca .NET Core eklentileri için geçerlidir |
yanlış | true | Eklentide bir iletişim kutusu gösterilmelidir. Bu birleşim yalnızca .NET Framework eklentileri için geçerlidir |
yanlış | yanlış | Eklenti bir iletişim kutusu göstermelidir/gösteremez. Eklenti, günlükçü aracılığıyla bir yönerge iletisini günlüğe kaydederek kimlik doğrulaması yapmak için cihaz akışını kullanmalıdır. Bu birleşim yalnızca .NET Core eklentileri için geçerlidir |
Eklenti yazmadan önce lütfen aşağıdaki özelliklere bakın.