Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule rozwiązano problem polegający na tym, że zwracany jest nieoczekiwany stan 401.1 z nagłówkami przed uwierzytelnianiem. Występuje, gdy używasz programu Internet Explorer do przeglądarki w aplikacji internetowej hostowanej w usługach Internet Information Services (IIS).
Oryginalna wersja produktu: tryb programu Internet Explorer w przeglądarce Microsoft Edge, Internet Explorer 11, Internet Information Services
Oryginalny numer KB: 2749007
Symptomy
Rozważmy następujący scenariusz:
- Do przeglądania aplikacji internetowej hostowanej w usługach IIS można użyć programu Internet Explorer (lub trybu internet explorer w przeglądarce Microsoft Edge).
- Maszyna kliencka jest skonfigurowana do używania uwierzytelniania wstępnego w ustawieniach internetu, a uwierzytelnianie w trybie jądra jest włączone w usługach IIS.
- Żądanie internetowe wysyłane przez program Internet Explorer (lub tryb programu Internet Explorer w przeglądarce Microsoft Edge) jest pierwszym żądaniem, które ma zostać wysłane do aplikacji IIS.
W tym scenariuszu usługi IIS mogą zwrócić odpowiedź protokołu HTTP (HyperText Transfer Protocol) 401.1 na program Internet Explorer (lub tryb przeglądarki Internet Explorer w przeglądarce Microsoft Edge) w odpowiedzi na żądanie przeglądarki. Przeglądarka internetowa może monitować o wprowadzenie nazwy użytkownika i hasła. Lub w oknie przeglądarki może zostać wyświetlony komunikat o błędzie HTTP 401.1.
Przyczyna
Jest to celowe. Odpowiedź 401.1 występuje, jeśli pierwsze żądanie przeglądarki internetowej wysyłane do aplikacji IIS zawiera jeden z następujących nagłówków:
- Nagłówek wyzwanie/odpowiedź systemu Windows (NTLM)
- Nagłówek negocjacja autoryzacji WWW (znany jako uwierzytelnianie wstępne)
Uwaga 16.
Istnieje wiele powodów, dla których użytkownik może zostać poproszony o podanie poświadczeń w programie Internet Explorer, które wykraczają poza zakres tego artykułu. Zobacz sekcję Więcej informacji , aby dowiedzieć się, jak określić, czy przyczyną monitu jest problem opisany tutaj.
Rozwiązanie
Aby obejść to zachowanie, wyłącz uwierzytelnianie wstępne w ustawieniach internetowych lub wyłącz uwierzytelnianie w trybie jądra dla aplikacji sieci Web usług IIS.
Ostrzeżenie
Jeśli używasz edytora rejestru niepoprawnie, może to spowodować poważne problemy, które mogą wymagać ponownej instalacji systemu operacyjnego. Firma Microsoft nie może zagwarantować, że możesz rozwiązać problemy wynikające z nieprawidłowego używania Edytora rejestru. Używanie Edytora rejestru odbywa się na własną odpowiedzialność.
Aby zmodyfikować to zachowanie w programie Internet Explorer, użyj Edytora rejestru (Regedt32.exe), aby dodać wartość do następującego klucza rejestru:
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/
Uwaga 16.
Klucz rejestru jest ścieżką; został opakowany pod kątem czytelności.
Dodaj następujące wartości rejestru:
- Nazwa wartości:
DisableNTLMPreAuth
- Typ danych:
REG_DWORD
- Wartość:
1
Aby zmodyfikować to zachowanie w usługach IIS, wyłącz uwierzytelnianie w trybie jądra dla aplikacji internetowej USŁUG IIS:
Otwórz Menedżera usług Internet Information Services (IIS), uruchamiając następujące polecenie w wierszu polecenia administracyjnego:
%windir%\System32\inetsrv\inetmgr.exe
W okienku Połączenia rozwiń nazwę serwera, rozwiń węzeł Lokacje, a następnie rozwiń witrynę, aplikację lub usługę sieci Web, dla której chcesz wyłączyć uwierzytelnianie w trybie jądra.
Przewiń do sekcji Zabezpieczenia w okienku Narzędzia główne , a następnie kliknij dwukrotnie pozycję Uwierzytelnianie.
W okienku Uwierzytelnianie wybierz pozycję Uwierzytelnianie systemu Windows.
Wybierz pozycję Ustawienia zaawansowane w okienku Akcje .
Po wyświetleniu okna dialogowego Ustawienia zaawansowane wyczyść pole wyboru Włącz uwierzytelnianie w trybie jądra.
Wybierz przycisk OK , aby zamknąć okno dialogowe Ustawienia zaawansowane.
Ważne
Wyłączenie uwierzytelniania w trybie jądra może spowodować niepowodzenie aplikacji internetowych, które wymagają uwierzytelniania Kerberos i delegowania.
Więcej informacji
Aby ustalić, czy monit jest spowodowany przez problem opisany w tym artykule, użyj narzędzia Fiddler. Użyj narzędzia, aby wyświetlić ruch żądania HTTP/odpowiedzi dla żądania, co spowoduje wyświetlenie monitu w programie Internet Explorer (lub w trybie internet explorer w przeglądarce Microsoft Edge). Aby potwierdzić stan HTTP i kody stanu podrzędnego, potrzebne będą również dzienniki usług IIS z serwera usług IIS. W poniższym przykładzie użyto programu Internet Explorer do zilustrowania tego zachowania:
Uruchom narzędzie Fiddler i włącz przechwytywanie ruchu.
Przejdź do aplikacji internetowej usług IIS, aby spowodować wyświetlenie monitu o podanie poświadczeń.
W programie Fiddler poszukaj żądania, które spowodowało 401. Patrząc na nieprzetworzone widoki żądania i odpowiedzi, zobaczysz wpisy podobne do następujących:
Nagłówki żądań:
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>
Nagłówki odpowiedzi
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
Uwaga 16.
Początkowe żądanie do aplikacji internetowej zawiera Authorization
już nagłówek, który następnie powoduje odpowiedź 401. Odpowiedni dziennik usług IIS powinien zawierać wpis podobny do następującego:
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
Stan HTTP i stan podrzędny to 401.1, które są mapowane na Odmowa dostępu z powodu nieprawidłowych poświadczeń.
Więcej informacji można znaleźć w następującej dokumentacji: