Próbuję rozpocząć korzystanie z usług IIS. Utworzyłem nową witrynę w Menedżerze IIS, zamapowałem ją na folder w moim systemie plików i dodałem index.html do tego folderu. Ustawiłem port na 85 dla tej witryny. Kiedy próbuję uzyskać dostęp http://localhost:85/index.html
, pojawia się następujący komunikat o błędzie:
401.3 - nieautoryzowany - nie masz uprawnień do przeglądania tego katalogu lub strony z powodu konfiguracji listy kontroli dostępu (ACL) lub ustawień szyfrowania dla tego zasobu na serwerze sieci Web.
Dałem dostęp do odczytu wszystkim w folderze i spróbowałem ponownie. Mogłem wtedy uzyskać dostęp do strony.
Następnie porównałem właściwości mojego folderu z właściwościami wwwroot. Okazało się, że wwwroot miał dostęp do odczytu w IIS_IUSRS ... Kiedy zrobiłem to samo w moim folderze i spróbowałem ponownie, ponownie otrzymałem powyższy błąd. Sprawdziłem, czy dostęp anonimowy jest domyślnie włączony, ale nadal pojawia się ten błąd.
Dlaczego to się dzieje? Jaki jest właściwy sposób rozwiązania problemu?
Oto, co zadziałało dla mnie.
Aby ustawić anonimowość serwera na dziedziczenie z tożsamości puli aplikacji, wykonaj następujące czynności.
źródło
TL; DR;
W większości przypadków wystarczy przyznanie dostępu do następujących kont (jednego | obu):
z prawami dostępu :
Otóż to!
Czytaj dalej, aby uzyskać bardziej szczegółowe wyjaśnienie ...
Udziel dostępu do listy ACL folderu aplikacji internetowej w zależności od tego, co wybrano na powyższym obrazku:
IUSR
(w moim przypadku) +IIS AppPool\DefaultAppPool
IIS AppPool\DefaultAppPool
tylkodlaIIS AppPool\DefaultAppPool
konto jest domyślnym kontem AppPool dla nowych aplikacji internetowych usług IIS, jeśli ustawiłeś konto niestandardowe, użyj konta niestandardowego.Przyznaj następujące uprawnienia kontom:
Read & Execute
List folder contents
Read
źródło
Ponieważ masz do czynienia z treścią statyczną ...
W folderze, który działa jako katalog główny witryny - czy po kliknięciu prawym przyciskiem myszy> właściwości> zabezpieczenia na liście pojawia się pozycja „Użytkownicy”? jeśli nie, kliknij „Dodaj ...” i wpisz, po zakończeniu kliknij „Zastosuj”.
źródło
Wypróbuj to rozwiązanie:
/server/38222/iis-7-5-windows-7-http-error-401-3-unauthorized
Sprawdź również, czy użytkownik uruchamiający IIS AppPool ma dostęp do odczytu tego folderu / pliku.
Spójrz na to:
http://www.iis.net/learn/manage/configuring-security/application-pool-identities
Spójrz również na to:
http://www.iis.net/learn/get-started/planning-for-security/understanding-built-in-user-and-group-accounts-in-iis
źródło
Na wypadek, gdyby ktoś inny wpadł w to. Rozwiązałem wszystkie te kroki i okazuje się, że ponieważ rozpakowałem niektóre pliki z MAC, Microsoft automatycznie bez żadnego powiadomienia Zaszyfrowałem pliki. Po godzinach prób ustawiania uprawnień do folderów wszedłem i zobaczyłem, że nazwy plików są zielone, co oznacza, że pliki zostały zaszyfrowane, a usługi IIS wyrzucą ten sam błąd, nawet jeśli uprawnienia do folderu są prawidłowe.
źródło
dla tras dodaj plik web.config
źródło
Inny problem, który może się pojawić w związku z otrzymywaniem nieautoryzowanej wiadomości, jest związany z dostawcami używanymi w ustawieniach uwierzytelniania z usług IIS. W moim przypadku miałem ten problem, jeśli ustawię dostawcę uwierzytelniania systemu Windows na „Negotiate”. Po wybraniu opcji „NTLM” dostęp został przyznany.
Więcej informacji na temat dostawców uwierzytelniania
https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/authentication/windowsauthentication/providers/
źródło
Włącz następujące elementy w systemie Windows 2012 R2
źródło
Jeśli pracujesz z uwierzytelnianiem w puli aplikacji (zamiast IUSR), co powinieneś, to ta lista sprawdzeń autorstwa Jean Sun jest najlepszą, jaką mogłem znaleźć, aby poradzić sobie z błędami 401 w IIS:
Otwórz Menedżera usług IIS, przejdź do witryny internetowej lub folderu aplikacji, w którym witryna jest wdrażana.
Uruchom następujące polecenie:
Na przykład:
Szczególnie kroki 5. i 6. są często pomijane i rzadko wspominane w Internecie.
źródło