Mam aplikację .NET 3.5 działającą w ramach usług IIS 7 na serwerze z systemem Windows 2003 i nie mogę uzyskać prawidłowego działania zintegrowanego uwierzytelniania systemu Windows, ponieważ w dalszym ciągu otrzymuję monit o zalogowanie się. Ustawiłem uwierzytelnianie systemu Windows na włączone w usługach IIS z wyłączonymi wszystkimi innymi typami zabezpieczeń, a uwierzytelnianie / autoryzacja pliku web.config mojej aplikacji jest skonfigurowana jako:
<system.web>
<compilation debug="true" strict="false" explicit="true" targetFramework="3.5" />
<authenticationmode="Windows"/>
<authorization>
<deny users = "?" />
</authorization>
</system.web>
W tej konfiguracji oczekuję, że za kulisami weryfikacja użytkownika systemu Windows zezwoli na dostęp i odmówi anonimowym użytkownikom. Jednak to, co otrzymuję, to wyskakujące okienko logowania do systemu Windows, gdy próbuję uzyskać dostęp do witryny.
Od kilku dni rozwiązuję ten problem i nie mogę go rozwiązać. Na podstawie postów z podobnymi problemami potwierdziłem, że mój adres URL nie zawiera żadnych kropek, dwukrotnie sprawdziłem, czy moje ustawienia IE są ustawione na Włącz zintegrowane uwierzytelnianie systemu Windows, a także dodałem mój adres URL do moich witryn intranetowych, ale nadal pojawia się wyskakujące okienko.
Aby dalej rozwiązać ten problem, włączyłem uwierzytelnianie anonimowe w usługach IIS i zmodyfikowałem plik web.config, do którego mogę bezpośrednio wejść, a następnie dodać Response.Write (System.Security.Principal.WindowsIdentifity.getcurrent (). User.name.toString () ), aby spróbować zobaczyć, który użytkownik jest używany podczas uwierzytelniania. Wynik, jaki otrzymuję, to IIS APPPOOL \ myapp, który jest oczywiście pulą aplikacji IIS dla mojej aplikacji.
Naprawdę doceniam każdą pomoc, jakiej ktokolwiek może udzielić, więc nadal używam tylko uwierzytelniania systemu Windows, ale nie otrzymuję wyskakującego okienka, a uwierzytelnianie systemu Windows jest wykonywane na rzeczywistym użytkowniku systemu Windows.
Dzięki.
Dodatkowa uwaga po dalszym rozwiązywaniu problemów:
Właśnie zauważyłem, że gdy logowanie nie powiedzie się i monit logowania do systemu Windows wyświetla się ponownie, pokazuje nazwę użytkownika, który próbował zalogować się jako „NAZWA SERWERA” \ „NAZWA UŻYTKOWNIKA”, co doprowadziło mnie do przekonania, że próbuje zweryfikować użytkownika na serwerze w porównaniu z domena. Aby to potwierdzić, utworzyłem konto użytkownika lokalnego bezpośrednio na serwerze aplikacji z tą samą nazwą użytkownika i hasłem co użytkownik domeny sieciowej i spróbowałem zalogować się ponownie. W rezultacie ponownie otrzymałem monit o logowanie, ale kiedy tym razem wprowadziłem nazwę użytkownika i hasło, udało mi się pomyślnie zalogować. Użytkownik sieci i serwer aplikacji znajdują się w tej samej domenie, więc naprawdę nie jestem pewien, dlaczego uwierzytelnianie usług IIS wskazuje na konta lokalnego serwera aplikacji, a nie na konta domeny. Zdaję sobie sprawę, że w tym momencie jest to pytanie dotyczące IIS, więc publikuję na forums.iis.
<authentication mode="Windows" />
Mam nadzieję, że to tylko literówka w Twoim pytaniu?