Anmeldeaufforderung mit integrierter Windows-Authentifizierung erhalten

Ich habe eine .NET 3.5-Anwendung, die unter IIS 7 auf Windows 2003-Server ausgeführt wird, und kann keine integrierte Windows-Authentifizierung ordnungsgemäß funktionieren, während ich weiterhin für eine Anmeldung aufgefordert werden. Ich habe die Windows-Authentifizierung in IIS aktiviert, wobei alle anderen Sicherheitstypen deaktiviert sind, und meine Anwendung web.config file authentication / authorization ist wie folgt eingerichtet:

       

Mit dieser Einrichtung erwarte ich hinter der Szene die Verifizierung des Windows-Benutzers, um den Zugriff zu erlauben und anonyme Benutzer zu verweigern. Was ich jedoch bekomme, ist ein Windows-Login-Popup, wenn ich versuche, auf die Site zuzugreifen.

Ich habe dieses Problem seit ein paar Tagen behoben und kann das Problem nicht lösen. Auf der Grundlage von Beiträgen mit ähnlichen Problemen habe ich bestätigt, dass meine URL keine Punkte enthält, habe meine IE-Einstellungen auf integrierte Windows-Authentifizierung aktivieren gesetzt und meine URL zu meinen Intranetsites hinzugefügt, habe aber immer noch das Popup.

Um es weiter zu beheben, habe ich die anonyme Authentifizierung in IIS aktiviert und meine Datei web.config geändert, wodurch ich direkt in Response.Write (System.Security.Principal.WindowsIdentifity.getcurrent (). User.name.toString () ), um zu sehen, welcher Benutzer bei der Authentifizierung verwendet wird. Das Ergebnis, das ich erhalte, ist IIS APPPOOL \ myapp, das offensichtlich der IIS-Anwendungspool für meine Anwendung ist.

Ich schätze wirklich jede Hilfe, die jemand zur Verfügung stellen kann, damit ich immer noch nur Windows-Authentifizierung benutze, aber nicht das Pop-up bekomme und die Windows-Authentifizierung gegen den tatsächlichen Windows-Benutzer ausgeführt wird.

Vielen Dank.


Zusätzlicher Hinweis nach der Fehlerbehebung:

Habe gerade bemerkt, dass, wenn die Anmeldung fehlschlägt und die Windows – Login – Eingabeaufforderung erneut angezeigt wird, der Benutzername angezeigt wird, der versucht hat, sich als “SERVERNAME” \ “BENUTZERNAME” anzumelden, was mich dazu gebracht hat, den Benutzer gegen den Server zu validieren Domain. Um dies zu bestätigen, habe ich ein lokales Benutzerkonto direkt auf dem Anwendungsserver mit demselben Benutzernamen und Passwort wie der Benutzer der Netzwerkdomäne erstellt und versucht, mich erneut anzumelden. Das Ergebnis war, dass ich die Anmeldeaufforderung erneut erhielt, aber als ich diesmal den Benutzernamen und das Passwort eingegeben habe, konnte ich mich erfolgreich anmelden. Der Netzwerkbenutzer und der Anwendungsserver befinden sich in derselben Domäne, sodass nicht wirklich sicher ist, warum die IIS-Authentifizierung auf die Konten des lokalen Anwendungsservers und nicht auf die Domänenkonten verweist. Ich weiß, dass dies eine IIS-Frage an diesem Punkt ist, also poste auch auf forums.iis.net, aber ich schätze jeden Rat, den jemand seit dem seit Tagen hat.

Solutions Collecting From Web of "Anmeldeaufforderung mit integrierter Windows-Authentifizierung erhalten"

Ich habe einen Windows 2008 Server, an dem ich gerade arbeite, daher ist meine Antwort nicht die gleiche wie die, die das OP auf einem Windows 2003 Server hat.

Hier ist, was ich getan habe (Aufnahme hier, damit ich es später finden kann).

Ich hatte das gleiche Problem:

Anmeldeaufforderung

In meiner Web.config- Datei hatte ich diesen Abschnitt:

        

Unter IIS scheint das alles unter dem Authentifizierungssymbol getriggers zu sein.

  1. Berechtigungen bearbeiten: Stellen Sie sicher, dass Ihr ASP.NET-Konto über Berechtigungen verfügt. Mine wurde ursprünglich nicht hinzugefügt.

ASP.NET-Berechtigung

Gehen Sie nun in die functionen der Authentifizierung :

Authentifizierungsfunktionen

Aktivieren Sie die anonyme Authentifizierung mit der IUSR :

Anonyme Authentifizierung

Aktivieren Sie die Windows-Authentifizierung , und klicken Sie mit der rechten Maustaste, um die Anbieter festzulegen .

NTLM muss FIRST sein!

Windows-Authentifizierung

Überprüfen Sie als Nächstes, ob unter Erweiterte Einstellungen … der erweiterte Schutz Akzeptieren und die coreel-Modus-Authentifizierung aktiviert ist:

Erweiterte Einstellungen

Nachdem ich dies getan hatte, ging ich zurück zu meiner Webanwendung, klickte auf den Link Durchsuchen und loggte mich ein, ohne meine Anmeldeinformationen erneut angeben zu müssen.

Ich hoffe, dass dies für viele von Ihnen von Vorteil ist, und ich hoffe, dass es auch für mich später nützlich ist.

Nur zum Wohl anderer. Wenn der Fehler 401.1 Unauthorized lautet und Ihr Fehlercode mit 0xc000006d , dann 0xc000006d Sie tatsächlich auf ein Sicherheitsfeature, das Anforderungen an FQDN oder benutzerdefinierte 0xc000006d blockiert, die nicht mit Ihrem lokalen Computernamen übereinstimmen:

Folgen Sie diesem Supportartikel, um das Problem zu beheben:

http://support.microsoft.com/kb/896861

Dieser hat mich eine Weile gedauert, weil die Kommentare von allen anderen mir nicht geholfen haben. Ich habe diesen Artikel gefunden und es repariert!

Ich hatte ein ähnliches Problem, bei dem ich nur einen Teil meiner Website schützen wollte. Alles funktionierte gut außer in IE. Ich habe sowohl die anonyme als auch die Windows-Authentifizierung aktiviert. Für Anonymous wird die Identität auf die Identität des Anwendungspools festgelegt. Das Problem war mit der Windows-Authentifizierung. Nach einigem Umgraben habe ich Fiddler angeschossen und festgestellt, dass es Kerberos als Provider verwendet (eigentlich ist es standardmäßig auf Negotiate eingestellt). Ich habe es auf NTLM umgestellt und das hat es behoben. HTH

Daudi

Fügen Sie Ihrer Websicherheit die Berechtigung [Domänenbenutzer] hinzu.

  • Klicken Sie mit der rechten Maustaste auf Ihre Site in IIS im Ordner Sites
  • Klicken Sie auf Berechtigungen bearbeiten …
  • Wählen Sie die Registerkarte Sicherheit
  • Klicken Sie im Bereich Gruppen oder Benutzernamen auf die Schaltfläche Bearbeiten
  • Klicken Sie im Popup Berechtigungen unter Gruppen- oder Benutzernamen auf Hinzufügen …
  • Geben Sie [Domänenbenutzer] in die Objektnamen ein, um den Textbereich auszuwählen, und klicken Sie auf OK, um die Änderung zu übernehmen
  • Klicken Sie auf OK, um das Popup-Fenster Berechtigungen zu schließen
  • Klicken Sie auf OK, um das Eigenschaften-Popup zu schließen und Ihre neuen Einstellungen zu übernehmen

Erstellen Sie keine Fehler auf Ihrem Server, indem Sie alles ändern. Wenn Sie bei der Verwendung der Windows-Authentifizierung für 2008 R2 aufgefordert werden, sich Providers wechseln Sie einfach zu Providers und verschieben Sie für jede Anwendung UP NTLM . Wenn Negotiate als erstes in der Liste aufgeführt wird, kann die Windows-Authentifizierung die Ausführung der Eigenschaft für eine bestimmte Anwendung in 2008 R2 anhalten und Sie können aufgefordert werden, den Benutzernamen und das Kennwort einzugeben, anstatt nie zu arbeiten. Das passiert manchmal, wenn Sie Ihre Anwendung aktualisiert haben. Stellen Sie sicher, dass NTLM auf der Liste steht, und Sie werden dieses Problem nie wieder sehen.

Das hat es für mich behoben.

Mein Server und Client PC ist Windows 7 und sind in derselben Domäne

  1. in iis7.5-aktivieren Sie die Windows-Authentifizierung für Ihr Intranet (deaktivieren Sie alle anderen Authentifizierung .. auch keine Windows-Authentifizierung in web.config-Datei erwähnen

  2. Dann gehen Sie zum Client-PC .. IE8 oder 9- Extras-Internet-Optionen-Sicherheit-Lokale Intranet-Sites-advanced-Fügen Sie Ihre Website (nehmen Sie die “require server verfi …” ticketmark..no not

  3. IE8 oder 9 – Extras – Internetoptionen – Sicherheit – Lokales Intranet – Benutzerdefinierte Ebene – Benutzerauthentifizierung – Anmeldung – Wählen Sie die automatische Anmeldung mit aktuellem Benutzernamen und Kennwort

  4. Speichern Sie diese Einstellungen .. Sie sind fertig .. Keine Eingabeaufforderung mehr für Benutzername und Passwort.

  5. Stellen Sie sicher, da Ihr Client-PC Teil der Domäne ist, müssen Sie ein Gruppenrichtlinienobjekt für diese Einstellungen haben. Oder diese Einstellung wird zurückgesetzt, wenn sich der Benutzer das nächste Mal bei Windows anmeldet

Kann browserbezogen sein. Wenn Sie IE verwenden, können Sie zu den erweiterten Einstellungen wechseln und prüfen, ob das Kontrollkästchen “Integrierte Windows-Authentifizierung aktivieren” aktiviert ist.

Wenn Ihre URL Punkte im Domain-Namen hat, behandelt IE sie so, als wäre sie eine Internet-Adresse und nicht lokal. Sie haben mindestens zwei Möglichkeiten:

  1. Ruft einen Alias ​​ab, der in der URL verwendet werden soll, um server.domain zu ersetzen. Zum Beispiel myapp.
  2. Befolgen Sie die folgenden Schritte auf Ihrem Computer.

Gehe zur Website und lösche den Anmeldedialog. Lass es geschehen:

Bildbeschreibung hier eingeben

In den Einstellungen von IE:

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

WindowsIdentity.GetCurrent ist korrekt: Sie sollten den APPPOOL-Benutzer erhalten. Dies liegt daran, dass der ASP.NET-process, der Ihren Code ausführt, die aktuelle Identität ist. Wenn Sie möchten, dass der Benutzer die Identität der Website zurückgibt, müssen Sie in Ihrer web.config die folgende Zeile hinzufügen:

  

Dies führt dazu, dass der process die Identität des Benutzers annimmt, der die Seite anfordert. Alle Aktionen werden in ihrem Auftrag ausgeführt, so dass alle Versuche, Ordner im Netzwerk zu lesen oder auf databaseressourcen und dergleichen zuzugreifen, dazu führen, dass der aktuelle Benutzer Berechtigungen für diese Dinge benötigt. Sie können hier mehr über Identitätswechsel lesen. Beachten Sie, dass abhängig von der Konfiguration Ihrer Web- / database-Server-Topologie möglicherweise Delegationsprobleme auftreten, bei denen der Identitätswechsel aktiviert ist.

Ihr ursprüngliches Problem ist jedoch, dass die Identität nicht ermittelt werden kann und Sie ein Anmelde-Popup erhalten. Ich werde feststellen, dass Sie Block nicht benötigen wenn Sie die anonyme Authentifizierung in IIS deaktiviert haben. Wir nehmen es nie auf (außer in besonderen -Blöcken und so), also würde ich sagen, dass Sie versuchen könnten, es zu entfernen und es erneut zu versuchen. Alles andere klingt jedoch richtig.

Sie haben nicht angegeben, welcher Benutzer den Anwendungspool in IIS ausführt. Ist es ein benutzerdefiniertes Konto oder ist es das Standardkonto? Wenn es benutzerdefiniert ist, ist es ein Domänenkonto oder ein lokales Konto auf dem Webserver? Benutzerdefinierte Konten können manchmal einige weitere Schritte erfordern, z. B. die Registrierung eines SPN. Es kann auch ein Problem mit dem benutzerdefinierten Konto sein, das in AD keine Berechtigung zum Auflösen des Kontos des eingehenden Benutzers hat.

Sie können auch die IIS-Protokolle überprüfen, um festzustellen, welche Antwort zurückgegeben wird. Es wird höchstwahrscheinlich eine 401 sein, aber es sollte eine Subnummer haben, danach 401.2 oder so. Diese Unternummer kann manchmal helfen, das Grundproblem zu bestimmen. Dieser KB-Artikel listet fünf auf.

In meinem Fall wurden die Autorisierungseinstellungen nicht richtig eingerichtet.

Ich musste

  1. Öffnen Sie die .NET-Autorisierungsregeln im IIS-Manager

    Öffnen Sie die .NET-Autorisierungsregeln im IIS-Manager

  2. und entfernen Sie die Ablehnungsregel

    Entferne die Ablehnungsregel

In unserem Intranet wurde das Problem auf Client-Seite getriggers, indem Einstellungen in der Sicherheit wie hier gezeigt optimiert wurden. Eines der Kontrollkästchen auf der rechten Seite funktionierte für uns.

IE Internetoptionen

Ich habe gerade ein ähnliches Problem mit einer ASP.Net-Anwendung getriggers.

Symptome: Ich könnte mich mit einem lokalen Benutzer, aber nicht mit einem Domänenbenutzer in meiner App anmelden, selbst wenn der Computer ordnungsgemäß der Domäne hinzugefügt wurde (wie Sie in Ihrer Zusätzlichen Notiz sagen). In der Sicherheitsereignisanzeige gab es ein Ereignis mit ID = 4625 “Domänen-ID inkonsistent”.

Lösung: Ich habe die Lösung hier gefunden . Das Problem war, dass meine Testmaschinen geklonte virtuelle Maschinen waren (Windows Server 2008 R2; ein Domänencontroller und ein Webserver). Beide hatten die gleiche Maschinen-SID, was anscheinend Probleme verursachte. Hier ist, was ich getan habe:

  1. Entfernen Sie den Webserver aus der Domäne.
  2. Führen Sie C: \ Windows \ System32 \ Sysprep \ Sysprep.exe in der VM aus.
  3. Starten Sie die VM neu.
  4. Verbinden Sie den Webserver mit der Domäne.

Sie verlieren einige Einstellungen im process (Benutzereinstellungen, statische IP, erstellen Sie das selbstsignierte Zertifikat neu), aber jetzt, nachdem ich sie neu erstellt habe, funktioniert alles korrekt.

Ich hatte auch das gleiche Problem. Habe die meisten Sachen in diesem und anderen Foren gefunden.

Endlich war es nach ein wenig eigenem RnD gelungen.

Ich ging in die IIS-Einstellungen und dann in meine Website- Berechtigungsoptionen , fügte ich die Organisations-Domänen-Benutzergruppe hinzu.

Da nun alle meine Domain-Benutzer den Zugriff auf diese Website gewährt haben, bin ich auf dieses Problem nicht gestoßen.

Hoffe das hilft

Haben Sie versucht, sich mit Ihrem Domain-Präfix einzuloggen, zB DOMAIN \ Username? In IIS 6 wird standardmäßig der Hostcomputer als Standarddomäne verwendet. Daher kann die Angabe der Domäne bei der Anmeldung das Problem beheben.

Ich habe versucht, die oben genannten IIS-Konfiguration Tricks und Loopback Registry Hack, und ich überprüft und erstellt App-Pool-Berechtigungen und ein Dutzend andere Dinge und war immer noch nicht in der Lage, die Authentifizierungsschleife auf meiner Entwicklungs-Workstation mit IIS Express oder IIS 7.5, von einer lokalen oder entfernten Browsersitzung. Ich erhielt vier 401.2 Statusantworten und eine leere Seite. Die exakt auf meinem IIS 8.5-Staging-Server bereitgestellte Site funktioniert problemlos.

Schließlich bemerkte ich Markup im Response Body, der leer gelassen wurde, indem der Browser die Standardseite für eine erfolgreiche Anmeldung enthielt. Ich stellte fest, dass die benutzerdefinierte Fehlerbehandlung für ASP.NET und HTTP für den 401-Fehler die Windows-Authentifizierung meiner Workstation verhinderte / störte aber nicht der Staging-Server. Ich habe mehrere Stunden damit verbracht, zu fummeln, aber sobald ich die benutzerdefinierte Behandlung für den 401-Fehler entfernte, war die Arbeitsstation wieder normal. Ich präsentiere dies als eine weitere Möglichkeit, den eigenen Fuß zu schießen.

Die Windows-Authentifizierung in IIS7.0 oder IIS7.5 funktioniert nicht mit Kerberos (provider = Negotiate), wenn die Anwendungspoolidentität ApplicationPoolIdentity ist. Man muss den Netzwerkdienst oder ein anderes integriertes Konto verwenden. Eine andere Möglichkeit besteht darin, NTLM zu verwenden, um Windows Authentication zum functionieren zu bringen (bei Windows-Authentifizierung, Providern, setzen Sie NTLM oben oder entfernen Sie Aushandlungen)

Chris van de Vijver

Ich hatte das gleiche Problem, weil der Benutzer (Identität), den ich im Anwendungspool verwendet hatte, nicht zur IIS_IUSRS Gruppe unterging. Der Benutzer wurde der Gruppe hinzugefügt und alles funktioniert

In meinem Fall war die Lösung (zusätzlich zu den oben vorgeschlagenen Anpassungen), den lokalen Entwicklungscomputer / IIS (Hosting-Server) meines Benutzers neu zu starten . Mein Benutzer wurde gerade zur neu erstellten AD-Sicherheitsgruppe hinzugefügt – und die Richtlinie galt nicht für den Benutzer-AD-Account, bis ich meinen Computer abgemeldet oder neu gestartet habe.

Hoffe, das wird jemandem helfen.

Ich stieß auf das gleiche Problem mit der Eingabeaufforderung für Anmeldeinformationen und führte eine schnelle Suche durch, und nichts im Internet konnte das Problem beheben. Es hat etwas gedauert, bis ich das Problem gefunden hatte, ein dummer.

In IIS -> Erweiterte Einstellungen -> Physische Pfad Anmeldeinformationen (ist leer)

Sobald ich eine Rechner-ID (Domäne / Benutzer) hinzugefügt habe, die Zugriff auf die VM / den Server hat, wird die Kennwortabfrage beendet.

Hoffe das hilft

Ich hatte dieses Problem bei .net core 2 und nachdem ich die meisten Vorschläge von hier gelesen habe, scheint es, als hätten wir eine Einstellung in web.config verpasst

  

Die richtige Einstellung war forwardWindowsAuthToken = “true” , die jetzt offensichtlich erscheint, aber wenn es so viele Situationen für dasselbe Problem gibt, ist es schwieriger zu lokalisieren

Edit: Ich fand auch hilfreich die folgenden Msdn Artikel , die Problembehandlung durchläuft.

Ich habe das gleiche Problem und es wurde getriggers, indem Sie die Application-Pool-Identität des Anwendungspools ändern, unter dem die Webanwendung zu NetworkService ausgeführt wird Bildbeschreibung hier eingeben