Doğrudan kimlik doğrulamasıyla IIS 7'ye Web Dağıtımı


12

Birçok deneme yanılma yapılandırmasından sonra, msdeploy.exe aracına şu anda komut satırı ile IIS 7.5 çalıştıran uzak bir sunucuya Visual Studio 2010'da yerleşik bir paketi dağıtmak için komut dosyası yazabiliyorum:

Temel kimlik doğrulama komutu:

msdeploy -source:package="project.zip" -dest:auto,computerName='https://webserver:8172/MsDeploy.axd',authtype='Basic',username='DOMAIN\myuser',password='xxx',includeAcls='False' -verb:sync -setParamFile:"SetParameters.xml" -allowUntrusted

Doğrudan kimlik doğrulamasını etkinleştirerek komut satırında parola sağlama ihtiyacını ortadan kaldırabilir miyim? Web Dağıtımı dokümanlar AuthType parametresini söz yerine Temel, 'NTLM' belirtebilirsiniz. Bununla birlikte, bunu denediğimde (aşağıdaki örneğe bakın), 401'i gösteren bir hata alıyorum. WMSvc web günlüğü 401.2 gösteriyor ve bu kimlik girişinde kullanıcı kimliği doldurulmuyor, Temel kimlik doğrulamayı kullanan önceki denemelerin aksine DOMAIN \ myuser web günlüğünde. İstemci veya sunucunun olay görüntüleyicisinde başka yararlı bilgi bulunamadı.

Not: Hedef web sunucusu başka bir etki alanında, bu yüzden net use \\webserver /u:DOMAIN\myuserbir belirteç oluşturmak için bir yapmak .

Doğrudan kimlik doğrulama komutu girişimi:

msdeploy -source:package="project.zip" -dest:auto,computerName='https://webserver:8172/MsDeploy.axd',authtype='NTLM',includeAcls='False' -verb:sync -setParamFile:"SetParameters.xml" -allowUntrusted

Görünüşe göre msdeploy.exe HTTP düzeyinde IIS ile doğrulanmıyor. Ne yanlış olabilir?

İstemci Windows XP, Sunucu Win2008R2. Her ikisi de msdeploy.exe 7.1.618.0 sürümünü çalıştırıyor. Her ikisinde de .NET 2.0, 3.5 ve 4.0 yüklü.

Yanıtlar:


1

İstemci bilgisayar aynı etki alanında kalmazsa doğrudan kimlik doğrulamasını kullanamayız. Web dağıtımı 1.1 kullanıyorsanız, doğrudan komut satırına kullanıcı adı ve parola koymaktan kaçınmak için storeCredentials ve getCredentials öğelerini deneyebilirsiniz.


0

Sorununuzu tam olarak anlamayabilirim, ancak bunu gerçekleştirmek için -storeCredentials ve -getCredentials bayrağını kullanabilir misiniz?


0

Bu açıkça geç bir cevaptır ve eminim bunu çözdünüz veya üzerinde çalıştınız, ancak bunun başka birine yardımcı olması durumunda:

Hedef web sunucusu başka bir etki alanında olsa bile NTLM kimlik doğrulamasını kullanarak bir paketi dağıtmak için MSDeploy'u kesinlikle kullanabilirsiniz. Bu kabaca kullandığımız komut satırıdır:

msdeploy.exe -source:package='MyPackage.csproj.zip' -dest:auto,computerName='https://www.myserver.com:8172/MsDeploy.axd?site=mysitename',authtype='NTLM',includeAcls='False' -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"MyPackage.csproj.SetParameters.xml"

Bunun çalışması için, bu komutu kaynak makineden hedef etki alanındaki bir kullanıcı adı + parolayla aynı olan bir kullanıcı adı + parolanın güvenlik bağlamında çalıştırırız .

Param dosyasının muhtemelen kimlik doğrulama üzerinde bir etkisi yoktur, ancak tamlık için dahil ettim. Bu, nereye uygulandığına bağlı olarak uygulama için farklı bağlantı trendleri uygulamak için kullandığımız yöntemdir.

Bir belirteç oluşturmak için "net use" yaklaşımını kullanmıyoruz, bunun HTTP üzerinden NTLM kimlik doğrulamasına kolayca dönüştüğünden emin değilim.


-3

IIS Site Yöneticisi sayfasına gidin -> IIS -> Kimlik Doğrulama

Anonim Kimlik Doğrulamayı Etkinleştir -> IIS konuk kullanıcısını belirtin (IUSER_ bilgisayaradı)

Web sitesi wwwroot klasöründe IIS konuk kullanıcı izni verin.


Lütfen geçiş kimlik doğrulamasını hiçbir kimlik doğrulaması olmadan karıştırmayın.
spoulson
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.