Anmeldeaufforderung mit integrierter Windows-Authentifizierung erhalten
Habe ich eine .NET 3.5-Anwendung unter IIS 7 auf Windows 2003 server und kann nicht die integrierte windows-Authentifizierung ordnungsgemäß funktioniert, als ich weiterhin bekommen Sie nach einer Anmeldung gefragt. Ich habe die Windows-Authentifizierung in IIS aktiviert mit allen anderen security-Typen deaktiviert und meine web-Anwendung.config-Datei-Authentifizierung/Autorisierung eingerichtet ist:
<system.web>
<compilation debug="true" strict="false" explicit="true" targetFramework="3.5" />
<authenticationmode="Windows"/>
<authorization>
<deny users = "?" />
</authorization>
</system.web>
Mit diesem setup, ich gehe davon aus, dass hinter der Szene überprüfung der Windows-Benutzer den Zugriff erlauben und verweigern anonyme Benutzer. Was ich aber immer bin ist ein Windows-login-pop-up, wenn ich versuche auf die Website zugreifen.
Ich habe die Behandlung dieses Problems für ein paar Tage jetzt und kann nicht herausfinden, das problem. Basierend auf Beiträge mit ähnlichen Problemen, bestätigte ich die URL enthält keine Fristen, doppelt geprüft, dass meine IE-Einstellungen festgelegt sind, um Integrierte Windows-Authentifizierung Aktivieren, und fügte auch meine URL zu meiner intranet-sites, aber noch immer das pop-up.
Beheben es weiter, ich aktiviert die Anonyme Authentifizierung in IIS und meine modifizierten web.config-Datei, um die es mir erlaubt, Sie direkt ein und fügte dann Antwort.Write(System.Sicherheit.AUFTRAGGEBER.WindowsIdentifity.getcurrent().Benutzer.name.toString ()), um zu versuchen, um zu sehen, was Benutzer in die Authentifizierung ein. Das Ergebnis werde ich erhalten, IIS APPPOOL\myapp das ist natürlich der IIS-Anwendungspool für meine Anwendung.
Ich wirklich zu schätzen jede Hilfe jemand kann bieten so, dass ich immer noch nur mit der windows-Authentifizierung aber nicht die pop-up-und die windows-Authentifizierung erfolgt gegen die eigentlichen Windows-Benutzer.
Dank.
Zusätzlicher Hinweis: nach der Problembehandlung weiter:
Gerade aufgefallen, dass wenn der login fehl, und der Windows-login-Eingabeaufforderung wieder angezeigt wird, es zeigt den Benutzernamen, die versuchten, melden Sie sich als "SERVERNAME"\"BENUTZERNAME" das führte mich zu glauben, dass es wurde versucht zu überprüfen, die den user vor die server im Vergleich zu der Domäne. Um dies zu bestätigen, habe ich einen lokalen Benutzer-Konto direkt auf der app-server mit dem gleichen Benutzernamen und Kennwort wie das Netzwerk der domain-Benutzer und versucht, sich wieder einzuloggen. Das Ergebnis war, erhielt ich die login-Eingabeaufforderung wieder, aber wenn ich eingegeben, den Benutzernamen und das Passwort dieser Zeit konnte ich erfolgreich anmelden. Die Netzwerk-Benutzer-und-app-server in der gleichen domain, also wirklich nicht sicher, warum IIS-Authentifizierung verweist auf das lokale app-server-Konten und nicht auf die Domäne Konten. Ich weiß, das ist ein IIS-Frage an dieser Stelle, so dass die Veröffentlichung auf forums.iis.net aber so Schätze jede Beratung kann jeder haben, da wurden die Fehlerbehebung für diese Tage.
InformationsquelleAutor der Frage Casey | 2011-03-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe einen Windows 2008 server, an dem ich arbeite, also meine Antwort ist nicht ganz das gleiche wie das, was die OP ist auf einem Windows 2003 server.
Hier ist was ich getan habe (dieser Aufnahme hier, damit ich es finden kann später).
Ich hatte das gleiche Problem:
In meinem Web.config Datei hatte ich diesen Abschnitt:
Unter IIS, alle diese zu sein scheint gelöst unter dem Authentifizierung Symbol.
Gehe jetzt in die features von Authentifizierung:
Aktivieren Anonyme Authentifizierung mit der
IUSR
:Aktivieren Windows-Authentifizierungdann Rechts-Klicken Sie auf das Anbieter.
NTLM muss der ERSTE sein!
Weiter, überprüfen Sie, dass unter Erweiterte Einstellungen... die Erweiterten Schutz ist Akzeptieren und Enable Kernel-mode authentication GEPRÜFT:
Sobald ich dies Tat, ging ich zurück zu meiner web-Anwendung, klickte auf den link Durchsuchen, und eingeloggt, ohne meine Anmeldeinformationen erneut.
Ich hoffe, dies erweist sich vorteilhaft für viele von Euch, und ich hoffe, es ist nützlich für mich später als gut.
InformationsquelleAutor der Antwort jp2code
Nur für die anderen Menschen nützt. Wenn der Fehler ist ein
401.1 Unauthorized
- und Ihre Fehler-code entspricht0xc000006d
dann bist du tatsächlich laufen in einer Sicherheits - "feature", das blockiert Anfragen auf den FQDN oder benutzerdefinierten host-Header, die nicht mit Ihrem lokalen Computer name:Folgen Sie diesem support-Artikel, um das Problem zu beheben:
http://support.microsoft.com/kb/896861
Diese eine hat mich eine Weile, weil alle anderen Kommentare hier versäumt, mir zu helfen. Ich fand diesen Artikel und es behoben!
InformationsquelleAutor der Antwort kamranicus
Ich hatte ein ähnliches Problem, wobei ich beschützen wollte nur einen bestimmten Teil meiner website. Alles funktionierte gut, außer im IE. Ich habe sowohl Anonyme und Windows-Authentifizierung aktiviert ist.
Für Anonyme, die Identität festgelegt ist, um die Identität des Anwendungspools. Das problem wurde mit der Windows-Authentifizierung. Nach einiger Graben um, feuerte ich fiddler und festgestellt, dass es mit Kerberos als Anbieter (eigentlich ist es gesetzt ist, zu Verhandeln, standardmäßig). Ich wechselte Sie zur NTLM-und dass es behoben.
HTH
Daudi
InformationsquelleAutor der Antwort Daudi
Add-Berechtigung [Domain-Benutzer], um Ihre web-Sicherheit.
InformationsquelleAutor der Antwort Harry
Nicht erstellen Fehler auf Ihrem server, indem Sie in alles. Wenn Sie die windows-Eingabeaufforderung zur Anmeldung bei der Verwendung von Windows-Authentifizierung auf 2008 R2 gehen Sie einfach auf
Providers
bewegen und aufNTLM
für jede Ihrer Anwendung.Wenn
Negotiate
ist die erste in der Liste, die Windows-Authentifizierung kann nicht mehr funktionieren-Eigenschaft für eine bestimmte Anwendung auf 2008 R2 und Sie können aufgefordert werden, geben Sie Benutzername und Passwort als nie arbeiten. Irgendwann passiert, wenn Sie eine Aktualisierung für Ihre Anwendung. Nur sicher sein, alsNTLM
ist der erste auf der Liste und werden Sie auch nie dieses problem wieder.InformationsquelleAutor der Antwort Slo
Diese Feste für mich.
Meinem Server und der Client-Pc ist Windows 7 und sind in der gleichen Domäne
in iis7.5-aktivieren der windows-Authentifizierung für Ihr Intranet(deaktivieren Sie alle anderen Authentifizierung.. auch Keine Notwendigkeit erwähnen, die windows-Authentifizierung in web.config-Datei
dann gehen, um die Client-PC .. IE8 oder 9 - Extras-Internetoptionen-Sicherheit-Lokales Intranet-Sites-erweitert-Fügen Sie Ihre Website(nehmen Sie die "require server verfi..." ticketmark..keine Notwendigkeit
IE8 oder 9 - Extras-Internetoptionen-Sicherheit-Lokales Intranet-Stufe anpassen-userauthentication-Anmeldung-wählen Sie automatische Anmeldung mit aktuellem Benutzernamen und Kennwort
speichern Sie diese Einstellungen..Sie sind fertig.. Nicht mehr Aufforderung für Benutzername und Passwort.
Vergewissern Sie sich , seit Ihrem client-pc ist Teil der Domäne, müssen Sie ein GRUPPENRICHTLINIENOBJEKT für diese Einstellungen,.. orelse diese Einstellung wird zurückgesetzt, wenn der Benutzer-login in windows das nächste mal
InformationsquelleAutor der Antwort Jose Arun
Werden können browser verwandt ist. Wenn Sie den IE benutzen, können Sie gehen Sie zu Erweiterte Einstellungen und überprüfen Sie die "Aktivieren Sie Integrierte Windows-Authentifizierung" aktiviert ist.
InformationsquelleAutor der Antwort Dante
WindowsIdentity.GetCurrent
ist richtig: Sie sollten die APPPOOL-user. Dies ist, weil die ASP.NET Prozess, die Ausführung von code, ist die aktuelle Identität. Wenn Sie wollen, dass es den Benutzer schlagen die Identität der Website, müssen Sie die folgende Zeile in Ihrem web.config:Dies bewirkt, dass der Prozess zur übernahme der Identität des Benutzers, der die Seite. Alle Aktionen werden auf Ihren Namen, so dass jeder versucht zu Lesen, Ordner im Netzwerk oder auf dem access-Datenbank-Ressourcen und ähnliches bedeuten, das der aktuelle Benutzer die erforderlichen Berechtigungen, um diese Dinge. Lesen Sie mehr über Identitätswechsel hier. Beachten Sie, dass abhängig von der Konfiguration Ihres web - /Datenbank-server-Topologie eingerichtet ist, können Sie mit einer delegation von Problemen mit der Identitätswechsel aktiviert.
Aber deine ursprüngliche Frage ist, dass es scheint, die Identität nicht festgestellt werden kann und Sie bekommen ein login-Fenster. Ich werde beachten Sie, dass Sie nicht brauchen, die
<deny>
block, wenn Sie deaktiviert haben, wird die anonyme Authentifizierung in IIS. Wir niemals (außer in speziellen<location>
Blöcke und so) also ich würde sagen, Sie könnten versuchen, es zu entfernen und versuchen Sie es erneut. Alles andere hört sich gut an, aber.Du nicht angeben, mit welchem user läuft der Anwendungspool in IIS. Ist es ein benutzerdefiniertes Konto oder ist es Standard? Wenn es Sitte ist, ist es ein domain-Konto oder ein lokales Konto auf dem web-server? Benutzerdefinierte Konten können manchmal erfordert ein paar mehr Schritte, wie das registrieren eines SPN. Es könnte auch ein problem mit der benutzerdefinierten Konto nicht mit Berechtigung in AD für die Lösung der eingehenden Benutzer-account.
Könnten Sie auch überprüfen Sie die IIS-Protokolle, um zu sehen, welche Antwort zurückgegeben wird. Es werden wahrscheinlich ein 401, aber es sollte eine sub-Reihe nach wie 401.2 oder so etwas. Das sub-Zahl kann manchmal helfen, festzustellen, das root-problem. Diese KB-Artikel listet fünf.
InformationsquelleAutor der Antwort Sean Hanley
In meinem Fall die Autorisierung Einstellungen wurden nicht richtig eingerichtet.
Musste ich
öffnen Sie die .NET Autorisierungsregeln im IIS-Manager
und entfernen der Deny-Regel
InformationsquelleAutor der Antwort johnecon
Wenn Ihre URL hat Punkte im domain-Namen, D. H. wird es zu behandeln, wie es eine internet-Adresse haben und nicht die lokalen. Sie haben mindestens zwei Möglichkeiten:
Gehen Sie auf die Website und Abbrechen der login-dialog. Geschehen lassen:
In den IE-Einstellungen:
InformationsquelleAutor der Antwort Bob Horn
Ich löste ein ähnliches problem mit einem ASP.Net -Anwendung.
Symptome:
Ich konnte loggen Sie sich in mein app mit einem lokalen Benutzer, aber nicht ein Domäne-Benutzer, auch wenn die Maschine korrekt an der Domäne (wie Sie sagen in Ihre Zusätzliche Anmerkung). In die Sicherheits-Ereignisanzeige, es war ein Ereignis mit der ID=4625 "Domänen-sid inkonsistent".
Lösung:
Ich fand die Lösung hier. Das problem war, dass mein test-Maschinen, wo geklonte virtuelle Maschinen (Windows Server 2008 R2, Domänencontroller, und einem web-server). Beide hatten die gleiche Maschine, die SID, die anscheinend die Probleme verursacht. Hier ist was ich getan habe:
Verlieren Sie einige Einstellungen in den Prozess (Benutzer-Einstellungen, statische IP, erstellen Sie ein selbst-signiertes Zertifikat), aber jetzt, dass ich neu erstellt, funktioniert alles korrekt.
InformationsquelleAutor der Antwort Matthieu
Ich hatte auch das gleiche Problem. Versuchte die meisten der Dinge, die Sie in diesem und anderen Foren.
War schließlich erfolgreich, nachdem ich ein wenig eigene RnD.
Ging ich in IIS-Einstellungen und dann in meine Webseite Erlaubnis Optionen Hinzugefügt, die meine Organisationen Domänen-Benutzer-Gruppe.
Nun, da alle meine Domänen-Benutzer gewährt wurden, der Zugriff auf diese website, die ich nicht begegnen, das Problem.
Hoffe, das hilft
InformationsquelleAutor der Antwort Saurabh
In unserem Intranet-das Problem konnte gelöst werden, auf der client-Seite durch tweaking-Einstellungen in Sicherheit, wie hier gezeigt. Entweder der Kontrollkästchen auf der rechten Seite für uns gearbeitet.
InformationsquelleAutor der Antwort mosheb
Haben Sie versucht, sich mit Ihrem Domänen-Präfix, z.B. " DOMÄNE\Benutzername? IIS 6 ist standardmäßig mit dem host-computer als Standard-Domäne festlegen der Domäne bei der Anmeldung das problem lösen kann.
InformationsquelleAutor der Antwort chalemic
Habe ich versucht, das über den IIS-Konfiguration-tricks und loopback-registry-hack, und ich überprüft und neu app-pool-Berechtigungen und ein Dutzend andere Dinge und war immer noch nicht in der Lage, um loszuwerden, die Authentifizierung loop läuft auf meinem Entwicklungs-workstation mit IIS Express oder IIS 7.5, von einem lokalen oder remote-browsing-session. Ich erhielt vier 401.2 status-Antworten, und eine leere Seite. Die genaue gleichen Website bereitgestellt zu meinem IIS 8.5 Testserver funktioniert einwandfrei.
Schließlich bemerkte ich, markup in der Antwort der Körper, die erbracht wurde leer vom browser enthalten die Standard Seite für einen erfolgreichen log-in. Ich habe festgestellt, dass eine Benutzerdefinierte Fehlerbehandlung für ASP.NET und HTTP 401 Fehler verhindern/stören die Windows-Authentifizierung meinem Arbeitsplatz, aber nicht den staging-server. Ich verbrachte mehrere Stunden das hantieren mit diesem, aber sobald ich entfernt benutzerdefinierte Handhabung, die nur für die Fehler 401, die workstation war wieder normal. Ich Stelle diese noch einen anderen Weg, um zu Schießen Sie Ihre eigenen Fuß.
InformationsquelleAutor der Antwort Mike M
Windows-Authentifizierung von IIS7.0 oder IIS7.5 funktioniert nicht mit kerberos - (provider=Verhandeln)
wenn der Anwendungspool-Identität ApplicationPoolIdentity
Man muss das Netzwerkdienstkonto verwenden oder ein anderes build-in-Konto.
Eine weitere Möglichkeit ist die Verwendung der NTLM Windows-Authenticatio zur Arbeit (in die Windows-Authentifizierung, Anbieter, setzen NTLM oben oder entfernen Sie verhandeln)
chris van de vijver
InformationsquelleAutor der Antwort Chris van de vijver
Ich hatte das gleiche problem, dass der Benutzer (Identität), dass ich in der application-pool nicht belowing zu IIS_IUSRS Gruppe. Hinzugefügt, die den Benutzer in die Gruppe und alles funktioniert
InformationsquelleAutor der Antwort user3731689
In meinem Fall war die Lösung (oben auf Einstellungen oben vorgeschlagen) zu neu starten mein/user' lokaler Entwicklung computer /IIS (hosting-server).
Mein user hat nur Hinzugefügt worden, um den neu geschaffenen AD-Sicherheitsgruppe - und Politik nicht gelten für Benutzer AD-Konto, bis ich mich abgemeldet/meinen computer neu gestartet.
Hoffe, dies hilft jemand.
InformationsquelleAutor der Antwort ukie
Traf ich die gleichen Anmeldeinformationen auffordert Problem, und habe eine schnelle Suche und nichts auf dem internet zu beheben. Es dauerte einige Zeit, um das problem zu finden, eine dumme.
In der IIS -> Vorab-Einstellung -> die Physikalischen Pfad Anmeldeinformationen (leer)
Sobald ich fügte hinzu, eine Computer-ID (Domäne/user), hat Zugriff auf die VM/server, die Passwort-Aufforderung aufhören würde.
Hoffe, das hilft
InformationsquelleAutor der Antwort kao
Ich hatte dieses Problem auf .net core 2 und nach gehen durch die meisten Vorschläge, die von hier aus scheint es, dass wir verpasst haben, eine Einstellung im web.config
Die richtige Einstellung war forwardWindowsAuthToken="true"der heute offensichtlich ist aber, wenn es so viele Situationen, für gleiche problem, es ist schwieriger zu lokalisieren
Edit: ich fand auch hilfreich, die folgenden Msdn-Artikel , geht über die Problembehandlung.
InformationsquelleAutor der Antwort eugen
Ich habe das gleiche Problem und es wurde gelöst, indem die Identität des Anwendungspools den Anwendungspool unter dem die web-Anwendung ausgeführt wird, NetworkService
InformationsquelleAutor der Antwort Syed