Aracılığıyla paylaş


Internet Explorer ve IIS ile Kimlik Doğrulama Öncesi üst bilgilerini kullandığınızda beklenmeyen bir 401.1 durumu döndürülür

Bu makalede, Ön Kimlik Doğrulama üst bilgileriyle beklenmeyen bir 401.1 durumunun döndürüldüğü sorun çözülür. Internet Information Services'te (IIS) barındırılan bir web uygulamasına tarayıcı yapmak için Internet Explorer kullandığınızda oluşur.

Özgün ürün sürümü: Microsoft Edge' de Internet Explorer modu, Internet Explorer 11, Internet Information Services
Özgün KB numarası: 2749007

Belirtiler

Aşağıdaki senaryoyu değerlendirin:

  • IIS'de barındırılan bir web uygulamasına göz atmak için Internet Explorer 'ı (veya Microsoft Edge'de Internet Explorer modunu) kullanırsınız.
  • İstemci makine İnternet Ayarları'nda Ön Kimlik Doğrulaması kullanacak şekilde yapılandırılır ve IIS'de Çekirdek Modu Kimlik Doğrulaması etkinleştirilir.
  • Internet Explorer (veya Microsoft Edge'de Internet Explorer modu) tarafından gönderilen web isteği, IIS uygulamasına gönderilecek ilk istektir.

Bu senaryoda IIS, tarayıcının isteğine yanıt olarak Internet Explorer'a (veya Microsoft Edge'de Internet Explorer moduna) bir Köprü Metni Aktarım Protokolü (HTTP) 401.1 yanıtı döndürebilir. Web tarayıcısı kullanıcı adınızı ve parolanızı girmenizi isteyebilir. Alternatif olarak, tarayıcı penceresinde bir HTTP 401.1 hata iletisi görüntülenebilir.

Neden

Bu davranış tasarımdan kaynaklanır. Web tarayıcısının IIS uygulamasına gönderilen ilk isteği aşağıdaki üst bilgilerden birini içeriyorsa 401.1 yanıtı oluşur:

  • Windows Sınaması/Yanıtı (NTLM) üst bilgisi
  • Www-Authorization anlaşması üst bilgisi (Ön Kimlik Doğrulaması olarak bilinir)

Not

Bir kullanıcıdan Internet Explorer'da bu makalenin kapsamı dışında olan kimlik bilgileri istemesinin birçok nedeni vardır. İstem nedeninin burada açıklanan sorundan kaynaklanmış olup olmadığını nasıl belirleyeceğinizi öğrenmek için Daha fazla bilgi bölümüne bakın.

Geçici çözüm

Bu davranışa geçici bir çözüm olarak, Internet Ayarları'nda Ön Kimlik Doğrulaması'nı devre dışı bırakın veya IIS Web uygulaması için Çekirdek Modu Kimlik Doğrulamasını kapatın.

Uyarı

Kayıt Defteri Düzenleyicisi'ni yanlış kullanıyorsanız, işletim sisteminizi yeniden yüklemenizi gerektirebilecek ciddi sorunlara neden olabilirsiniz. Microsoft, Kayıt Defteri Düzenleyicisi'nin yanlış kullanılmasından kaynaklanan sorunları çözebileceğinizi garantileyemez. Kayıt Defteri Düzenleyicisi'ni kullanmak kendi sorumluluğunuzdadır.

Internet Explorer'da bu davranışı değiştirmek için Kayıt Defteri Düzenleyicisi'ni (Regedt32.exe) kullanarak aşağıdaki kayıt defteri anahtarına bir değer ekleyin:

HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/

Not

Kayıt defteri anahtarı bir yoldur; okunabilirlik için sarmalanmıştır.

Aşağıdaki kayıt defteri değerlerini ekleyin:

  • Değer Adı: DisableNTLMPreAuth
  • Veri tipi: REG_DWORD
  • Değer: 1

IIS'de bu davranışı değiştirmek için IIS web uygulaması için Çekirdek Modu Kimlik Doğrulamasını devre dışı bırakın:

  1. Bir yönetim komut isteminden aşağıdaki komutu çalıştırarak Internet Information Services (IIS) Yöneticisi'ni açın:

    %windir%\System32\inetsrv\inetmgr.exe
    
  2. Bağlantılar bölmesinde sunucu adını genişletin, Siteler'i genişletin ve ardından Çekirdek Modu Kimlik Doğrulamasını devre dışı bırakmak istediğiniz siteyi, uygulamayı veya Web hizmetini genişletin.

  3. Giriş bölmesinde Güvenlik bölümüne gidin ve kimlik doğrulaması'na çift tıklayın.

  4. Kimlik Doğrulaması bölmesinde Windows Kimlik Doğrulaması'nı seçin.

  5. Eylemler bölmesinde Gelişmiş Ayarlar'ı seçin.

  6. Gelişmiş Ayarlar iletişim kutusu görüntülendiğinde Çekirdek modu kimlik doğrulamasını etkinleştir onay kutusunun işaretini kaldırın.

  7. Gelişmiş Ayarlar iletişim kutusunu kapatmak için Tamam'ı seçin.

Önemli

Çekirdek Modu Kimlik Doğrulaması'nın devre dışı bırakılması, Kerberos kimlik doğrulaması ve temsilci seçme gerektiren web uygulamalarının başarısız olmasına neden olabilir.

Daha Fazla Bilgi

İstemin bu makalede açıklanan sorundan kaynaklanmış olup olmadığını belirlemek için Fiddler aracını kullanın. Internet Explorer'da (veya Microsoft Edge'de Internet Explorer modunda) oluşan isteğin HTTP isteği/yanıt trafiğini görüntülemek için aracı kullanın. HTTP durumu ve alt durum kodlarını onaylamak için IIS Sunucusundan IIS günlüklerine de ihtiyacınız olacaktır. Aşağıdaki örnek, bu davranışı göstermek için Internet Explorer'ı kullanır:

  1. Fiddler Aracı'nı başlatın ve trafik yakalamayı etkinleştirin.

  2. Kimlik bilgileri istemine neden olacak şekilde IIS web uygulamasına göz atın.

  3. Fiddler'da 401 ile sonuçlanan isteği arayın. Ham istek ve yanıt görünümlerine baktığınızda aşağıdakine benzer girdiler görürsünüz:

    İstek Üst Bilgileri:

    GET /App1/default.aspx HTTP/1.1
    Accept-Language: en-US
    Accept-Encoding: gzip, deflate
    Connection: Keep-Alive
    Host: websitename
    Cookie: ASP.NET_SessionId=jdzbfpnmacq0jykhxnhqhe3j
    Authorization: Negotiate
    <header content omitted>
    

    Yanıt Üst Bilgileri

    HTTP/1.1 401 Unauthorized
    Content-Type: text/html
    Server: Microsoft-IIS/7.5
    WWW-Authenticate: Negotiate
    WWW-Authenticate: NTLM
    X-Powered-By: ASP.NET
    Date: Wed, 22 Aug 2012 17:41:09 GMT
    Content-Length: 1293
    Proxy-Support: Session-Based-Authentication
    

Not

Web uygulamasına yapılan ilk istek zaten üst bilgiyi içerir Authorization ve bu da 401 yanıtıyla sonuçlanır. Karşılık gelen IIS günlüğü aşağıdakine benzer bir girdi göstermelidir:

2012-08-22 17:41:09 2001:4898:0:fff:200:5efe:157.59.113.72 GET /App1/default.aspx - 80 - 2001:4898:0:fff:0:
5efe:172.18.100.183 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+WOW64;+Trident/5.0;+SLCC2;+.NET+CLR+
2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+Media+Center+PC+6.0;+.NET4.0C;+.NET4.0E;+InfoPath.3;+MS-
RTC+EA+2;+BRI/1;+Zune+4.7;+MS-RTC+LM+8;+BRI/2;+Creative+AutoUpdate+v1.41.02) 401 1 2148074254 5005

HTTP durumu ve alt durumu, Geçersiz kimlik bilgileri nedeniyle Erişim Reddedildi olarak eşlenen 401.1'dir.

Daha fazla bilgi için, aşağıdaki belgelere bakın: