IIS 7.5 (Windows 7) - Błąd HTTP 401,3 - Nieautoryzowane

81

Próbuję przetestować moją witrynę ASP.Net na localhost i otrzymuję ten błąd:

HTTP Error 401.3 - Unauthorized
You do not have permission to view this directory or page because of
the access control list (ACL) configuration or encryption settings for
this resource on the Web server.

Mam następujących użytkowników w folderze aplikacji witryny z pełnymi uprawnieniami do odczytu / zapisu:

  • USŁUGA SIECIOWA
  • IIS_IUSRS
  • SYSTEM
  • Administratorzy
  • Nathan (ja)

Co mogę spróbować to naprawić?

Nathan Ridley
źródło
Ścigam ten problem od kilku godzin. Mam już IUSR, a serwer \ IUSR będzie miał uprawnienia do odczytu. Moim problemem okazały się zaszyfrowane foldery, które zostały wyodrębnione z pliku Zip. Jeśli nazwa folderu jest zielona, ​​spróbuj usunąć pole wyboru z ustawień zaawansowanych pola Właściwość. To naprawiło mój problem.
Lionel Morrison,

Odpowiedzi:

123

IIS 7 tworzy również „IUSR” jako domyślny użytkownik, który ma dostęp do plików przez IIS. Więc spraw, aby użytkownik IUSR miał dostęp do odczytu plików / folderów.

Jak sprawdzić, czy IUSR przeczytał Access? Kliknij prawym przyciskiem myszy -> Folder -> Właściwości -> Karta Zabezpieczenia Sprawdź, czy IUSR znajduje się na liście nazw grup lub użytkowników, jeśli nie.

Kliknij Edytuj -> Dodaj -> Zaawansowane -> Znajdź teraz -> Wybierz IUSR i kliknij OK cztery razy


źródło
5
Upewnij się, że szukasz z właściwej lokalizacji. Szukałem IUSR w mojej domenie pracy i nic nie znalazłem. Następnie zmieniłem lokalizację na nazwę mojego komputera.
Mike Blandford,
8
Uwaga: Wymagało to dostępu zarówno IUSR, jak i IIS_IUSRS, aby działał na moim komputerze. Próbowałem usunąć IIS_IUSRS po dodaniu IUSR, myśląc, że IUSR jest wszystkim, czego potrzebowałem, ale skwierczał.
kdawg
1
Zaskoczyło mnie, że samo dodanie IIS_IUSRsnie wystarczyło; Musiałem także dodać IUSR. Warto pamiętać: o)
Owen Blacker
Z pewnością użytkownik IUSR jest już domyślnie członkiem IIS_IUSRS? Wydaje się, że mój serwer nie wspomina IUSR o domyślnych ustawieniach uprawnień dla wwwroot.
NickG
33

Znalazłem to na innym forum, więc nie mogę się pochwalić, ale zrobiłem to i zadziałało dla mnie:

„Spróbuj zmienić ustawienie uwierzytelniania anonimowego w IIS7:

Kliknij na Uwierzytelnianie i kliknij edytuj po wybraniu Uwierzytelniania anonimowego. W oknie otwierającym wybierz Tożsamość puli aplikacji i kliknij OK. „


źródło
5
To właśnie to dla mnie zrobiło.
Chris Marisic,
Używam podszywania się i to jakoś stanowiło problem. Nie wiem dlaczego, ale zadziałało!
Jarrod
To powstrzymało mnie od oderwania dziś wszystkich włosów. Dziękuję Ci.
pauska
W IIS 8.5 wydaje się, że domyślnie dla nowej aplikacji nie jest używana tożsamość puli aplikacji, ale tylko IUSR. Wydaje mi się, że to trochę dla mnie!
Patogen
Domyślam się, że sensownie jest chcieć osobnych tożsamości dla „użytkownika uruchamiającego pulę aplikacji” i „użytkownika podszywającego się pod pulę aplikacji po„ anonimowym ”uwierzytelnieniu” - ale tylko z perspektywy czasu i po znalezieniu tej odpowiedzi!
shambulator
20

Miałem ten sam problem w IIS 7.5 w systemie Windows Server 2008. Dla mnie następujące kroki działały w celu rozwiązania problemu:

  • Otwórz Menedżera IIS
  • Kliknij witrynę, którą chcesz edytować
  • Kliknij dwukrotnie Uwierzytelnianie
  • Kliknij Anonimowe uwierzytelnianie , a następnie kliknij Edytuj ... w obszarze Działania
  • Zmień użycie poświadczeń tożsamości puli aplikacji zamiast określonego użytkownika (mój był IUSR)

Po wprowadzeniu tej zmiany zniknęły moje błędy 401,3.

znak
źródło
10

Czy używasz mechanizmu logowania, czy tylko anonimowego uwierzytelnienia?

Jeśli anonimowy, przejdź do Menedżera IIS, na ikonie Uwierzytelniania wybierz nazwę Anonimowego uwierzytelnienia, a następnie kliknij przycisk Edytuj w Akcje. Sprawdź, który użytkownik jest tam określony i upewnij się, że ma on uprawnienia do plików / folderów serwisu.

Jeśli masz jakąś formę systemu logowania, upewnij się, że zalogowany użytkownik (użytkownicy) mają uprawnienia do plików dla witryny i upewnij się, że identyfikator puli aplikacji, z której korzystasz, ma przynajmniej dostęp do odczytu do plików.

MattB
źródło
3

Domyślnie w usługach IIS 7.5 każda pula aplikacji działa w ramach własnej „tożsamości wirtualnej”. Tożsamość puli aplikacji to poświadczenia używane do uzyskania dostępu do systemu plików.

Nie jestem pewien co do jego mechaniki, ale Microsoft zrobił to, aby zwiększyć bezpieczeństwo domyślnej instalacji, jednocześnie zmniejszając potrzebę tworzenia kont usług w niektórych scenariuszach instalacji. Niezależnie od tego, będziesz musiał zidentyfikować to konto „tożsamość wirtualna” i przyznać mu dostęp do katalogu lub zmienić konto usługi App Pool.

Tożsamości wirtualne puli aplikacji są nazywane „IIS AppPool \”, więc jeśli używasz DefaultAppPool, jego tożsamość to „IIS AppPool \ DefaultAppPool”.

Zobacz ten artykuł, aby uzyskać bardziej szczegółowe informacje.

ntcolonel
źródło
3

Cześć dla mnie w pracy IIS 8: 1) Przejdź do katalogu wirtualnego IIS - 2) Uwierzytelnianie - 3) Uwierzytelnianie anonimowe - 4) Ustaw tożsamość puli aplikacji.

Alex
źródło
Zarówno odpowiedź IUSR, jak i ta odpowiedź są wymagane do pełnego rozwiązania we wszystkich przypadkach, w których natknąłem się
Brian Knoblauch,
2

Ponieważ żadna z powyższych odpowiedzi nie pomogła mi, pomyślałem, że podzielę się tym, jak rozwiązałem ten problem, gdy wpadłem na to na mojej lokalnej maszynie z systemem Windows 7 i IIS7.

  • Przejdź do IIS7 -> Pule aplikacji

    Znajdź pulę aplikacji swojej witryny (w moim przypadku DefaultAppPool), kliknij prawym przyciskiem myszy i wybierz Opcje zaawansowane.

    Znajdź rozdział Model procesu i zmień pole Tożsamość na znanego użytkownika, który na pewno ma dostęp do plików w folderze witryny (w moim przypadku lokalny administrator)

Daniel Hedenström
źródło
2

Odpowiadając, aby dołączyć informacje z komentarzy do zaakceptowanej odpowiedzi.

W IIS 7.5 w systemie Windows Server 2008r2 grupa IIS_IUSRS jest już uwzględniona, ale oddzielna grupa IUSR musi być nadal dodana do uprawnień, aby umożliwić dostęp / pobieranie plików.

Aby uzyskać więcej informacji na temat różnic na kontach, zobacz Opis wbudowanych kont użytkowników i kont grup w usługach IIS.

Chris Pickering
źródło
1

Spróbuj ... Przejdź do Zarządzanie komputerem (kliknij prawym przyciskiem myszy na moim komputerze i wybierz Zarządzaj) -> Lokalni użytkownicy i grupy -> Użytkownicy -> Wybierz IUSR_MACHINENAME -> Kliknij prawym przyciskiem Właściwości -> Upewnij się, że jest członkiem IIS_WPG oraz użytkowników, a nie gości.


Pracuję z Server 2008 R2 i konto IUser nie jest dostępne na liście.

Matt
źródło
1

Spróbuj zainstalować IIS po stronie klienta, aspnet_regiis -ca następnie zresetuj IIS.

titilola
źródło
1

Dla użytkowników, których to nie wystarczy:

Mam to do pracy z tym:

  • Otwórz widok funkcji swojej witryny.
  • Idź do Handler Mappings.
  • Znajdź ścieżkę do pliku .cshtml
  • Kliknij prawym przyciskiem myszy i kliknij opcję Edytuj uprawnienia funkcji
  • Wybierz Wykonaj
  • Kliknij OK.

Teraz spróbuj odświeżyć swoją stronę.

nixkuroi
źródło