2012-09-20 19 views
5

Bu soruyu bir kaç haftalığına Google aracılığıyla okumaya çalışıyorum ve SO'yu okudum ve çok şansım olmadı, bu yüzden kendime sormayı denediğimi düşündüm .ASP.NET Windows Kimlik Doğrulama Çalışmıyor/Kimlik Bilgilerini Kabul Etmiyor

Ben iç kullanıcılar için bazı bilgiler üretmek için bizim intranet üzerinde çok, çok basit ASP.NET sitesini kuruyorum. Anonim erişim yerine Windows kimlik doğrulaması kullanıyorum, çünkü siteye hangi kullanıcının girdiğine bağlı olarak farklı bilgiler üreteceğim.

Uzun lafın kısası, bu şimdiye uygulamasını geliştirdi benim yerel Windows 7 makinede test mükemmel çalışıyor. Bununla birlikte, Windows 2008 R2 server adresinden ikamet etmeyi istediğim yerden, siteye geldiğimde, kimlik bilgilerimi sormak için bir pop-up alıyorum ve onları girsem bile tekrar tekrar sormamı isterim. Bu, siteye uzaktan veya yerel olarak isabet edersem de olur. Anonim erişimi kullanmaya çalışırsam siteye her iki şekilde de ulaşabilirim ancak kullanıcıyı tanımlayamadığımdan, sağlamak istediğim bilgiyi oluşturamıyorum.

Notlar: IIS

  1. , Windows Kimlik Doğrulama ve ASP.NET Impersonation site için etkindir. Diğer her şey devre dışı. bunu anlama uğruna

  2. , Şu anda web.config tüm kullanıcıları izin verecek şekilde ayarlanmış ve herhangi inkar etmiyorum var.

  3. bunun için kullanıyorum konak/URL toolName.organization.local olduğunu
    O zamanlar farklı bir etki benim uzaktan kullanıcıyı ikamet eden 2008 R2 sunucu yönetici kullanıcı bir konuydu endişeliydi
  4. ben ile test ediyordu ama yine yerel olarak çalışmıyor. AppHost dosyasında

  5. , Şu anda windowsauthentication etkindir.

      <windowsAuthentication enabled="true"> 
          <providers> 
           <add value="Negotiate" /> 
           <add value="NTLM" /> 
          </providers> 
          </windowsAuthentication> 
    

Kuşkusuz, ben genellikle bu yüzden pencereler kimlik doğrulama ve bu konuya biraz yeniyim diğer iç sitelerin tümü için bu sunucuda form kimlik doğrulaması kullanır. Bu noktada ne yapacağımı ya da bir daha kontrol edeceğimi bilemiyorum, bu yüzden herhangi bir tavsiye yardımcı olacaktır. Teşekkürler.

+1

Bu tanılama aracını deneyin: http://blogs.iis.net/brian-murphy-booth/archive/2007/03/09/delegconfig-delegation-configuration-reporting-tool.aspx? Gönderiyi yoksay, v7.0/7.5 sürümü var – MatthewMartin

cevap

2

Öncelikle site güvenilen siteler veya intranet siteleri güvenlik grubu içinde yalnızca Windows Geçişte kimlik doğrulama sadece Internet Explorer ile çalışır biliyoruz ve olmalıdır. Firefox, Chrome vb. Her zaman kimlik bilgilerini ister.

Bunu söyledikten sonra, birkaç sorununuz var.

Sen bu durumda da bir <identity impersonat="true"/> etiketi gerekir

Eğer uygulama kullanıcısı bağlamında çalıştırmak istiyorsanız karar vermelidir, web.config bir <authentication mode="Windows" /> eleman olmalıdır. Değilse yanlış olmalıdır (bu varsayılan olsa da).

Sen Sitenin kendisi tamamen pencere kimlik doğrulaması tarafından korunan ise web.config herhangi yetkilendirme kurallarını olması gerekmez

.

+0

Geri bildirim için teşekkürler. Önerdiğiniz gibi ayarlanmış bir kimlik doğrulama modum var ve yalnızca siteye IE üzerinden erişmeye çalışıyorum. Test amacıyla yetkilendirme bölümünü açıkladım. Uygulamanın kullanıcı bağlamında çalışmasını istiyorum, ancak "an' etiketi "ile ne demek istediğinizden emin değilim. Şimdiye kadar yine aynı, yinelenen kimlik bilgisi istemi alıyorum. Bu ilginç olan bir önceki kullanıcı tarafından önerilen DelegConfig aracı yerel olarak Windows kimlik doğrulaması ile çalışır. Bu yüzden web.config'imi aracınkiyle karşılaştırıp belirgin bir şey olup olmadığına bakacağım. – user1032943

+0

Bu yanıt sorunumu çözdü - Firefox ile Windows Kimlik Doğrulaması'nı (39.0.3) kullanmaya ve yaptığım her ne olursa olsun "Kimlik Doğrulama Gerekli" iletişimini almaya çalışıyordum. Projemi MSIE ile çalıştırdım ve doğru bir şekilde çalıştım. –

8

Bu biraz eski bir konu olduğunu biliyorum, ama aynı sorunu vardı.Ben NetworkService yerine Identity: ApplicationPoolIdentity kullanarak AppPool vardı çıkıyor. Bunu değiştirdiğimde (IIS7.5'te Gelişmiş Ayarlar altında) artık sunucu ek kimlik bilgileri istemedim ve geçiş işlemi mükemmel şekilde çalıştı.

Bu yardımcı olur umarım!

0

Yararlı olması durumunda, benim için sorun, NTFS izinlerini kullanmayı denemek için uygulama havuzumu Klasik modda bırakmış olmamdı. Bunu hiç işe yaramadı, ancak Entegre moda geçtiğimde, belirli kullanıcıların erişimini yapılandırmak için <allow> ve <deny> etiketlerini kullanabilirim.