Aracılığıyla paylaş


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.