2012-09-20 11 views
5

Ich habe versucht, diese Frage für ein paar Wochen jetzt über Google zu lösen und SO zu lesen, und hatte nicht viel Glück, also dachte ich, ich würde endlich versuchen, mich zu fragen .ASP.NET Windows-Authentifizierung funktioniert nicht/nicht akzeptiert

Ich richte eine sehr, sehr einfache ASP.NET Website in unserem Intranet ein, um Informationen für interne Benutzer zu generieren. Ich verwende die Windows-Authentifizierung anstelle des anonymen Zugriffs, da basierend auf dem Benutzer, der die Website aufruft, unterschiedliche Informationen generiert werden.

Lange Rede, kurzer Sinn, das funktioniert perfekt beim Testen auf meiner lokalen Windows 7 Maschine, wo ich die Anwendung entwickelte. Von der Windows 2008 R2 server, wo ich es haben möchte, wenn ich die Seite betrete, bekomme ich ein Popup-Fenster, in dem ich nach meinen Zugangsdaten gefragt werde, und selbst wenn ich sie eingebe, werde ich immer wieder danach gefragt. Dies geschieht unabhängig davon, ob ich die Site remote oder lokal betrete. Wenn ich anonymen Zugriff versuche, kann ich beide Seiten erreichen, aber da ich den Benutzer nicht identifizieren kann, kann ich die Informationen, die ich bereitstellen möchte, nicht generieren.

Hinweise:

  1. In IIS habe ich die Windows-Authentifizierung und Identitätswechsel in ASP.NET für die Site aktiviert. Alles andere ist deaktiviert.

  2. Um es herauszufinden, habe ich derzeit die web.config festgelegt, um allen Benutzern zu erlauben und leugne keine.

  3. Der Host/URL ich es bin mit ist toolName.organization.local
  4. Ich war besorgt, dass es ein Problem des 2008 R2 Server Admin-Benutzers war in einer anderen Domäne mit Wohnsitz dann meinem Remote-Benutzers, dass ich testete mit aber auch hier funktioniert es nicht lokal.
  5. In der AppHost-Datei habe ich derzeit windowsAuthentication aktiviert.

      <windowsAuthentication enabled="true"> 
          <providers> 
           <add value="Negotiate" /> 
           <add value="NTLM" /> 
          </providers> 
          </windowsAuthentication> 
    

Zugegeben, ich verwenden in der Regel die Formularauthentifizierung auf diesem Server für alle anderen internen Stellen so bin ich ein bisschen zu Windows-Authentifizierung und dieses Problem neu. An diesem Punkt bin ich nur nicht sicher, was ich als nächstes versuchen oder überprüfen sollte, daher wäre jeder Rat hilfreich. Vielen Dank.

+1

Sie versuchen dieses Diagnosetool: http://blogs.iis.net/brian-murphy-booth/archive/2007/03/09/delegconfig-delegation-configuration-reporting-tool.aspx? Ignoriere das Postdatum, es gibt eine v7.0/7.5 Version – MatthewMartin

Antwort

2

Zunächst sollten Sie feststellen, dass die Windows Passthrough-Authentifizierung nur mit Internet Explorer funktioniert und nur dann, wenn sich die Site in der Sicherheitsgruppe "Vertrauenswürdige Sites" oder "Intranetsites" befindet. Firefox, Chrome usw. werden immer zur Eingabe von Zugangsdaten auffordern.

Nachdem das gesagt wurde, haben Sie ein paar Probleme.

Sie sollen ein <authentication mode="Windows" /> Element in Ihrem web.config haben

Sie sollten entscheiden, ob Sie die App wollen im Kontext des Benutzers ausgeführt werden, wobei in diesem Fall auch einen <identity impersonat="true"/> Tag benötigen würde. Wenn nicht, sollte es falsch sein (obwohl dies der Standardwert ist).

Sie müssen keine Autorisierungsregeln in Ihrer web.config haben, wenn die Site selbst durch die Windows-Authentifizierung vollständig geschützt ist.

+0

Danke für die Rückmeldung. Ich habe einen Authentifizierungsmodus wie Sie vorgeschlagen haben und nur versuchen, über IE auf die Website zuzugreifen. Ich habe den Autorisierungsabschnitt aus Gründen des Testens auskommentiert. Ich möchte, dass die App im Kontext des Benutzers ausgeführt wird, aber ich bin mir nicht ganz sicher, was Sie mit einem "Tag" meinen. Bis jetzt empfange ich immer noch dasselbe und wiederhole die Anmeldeinformationen. Interessant ist, dass das von einem vorherigen Benutzer empfohlene DelegConfig-Tool lokal mit der Windows-Authentifizierung arbeitet. Also werde ich meine web.config mit der des Tools vergleichen und sehen, ob etwas offensichtlich ist. – user1032943

+0

Diese Antwort behebt mein Problem - ich habe versucht, die Windows-Authentifizierung mit Firefox (39.0.3) zu verwenden und den Dialog "Authentifizierung erforderlich" zu erhalten, egal was ich gemacht habe. Ich habe mein Projekt mit MSIE ausgeführt und die Authentifizierung funktionierte ordnungsgemäß. –

8

Ich weiß, das ist ein etwas altes Thema, aber ich hatte genau das gleiche Problem.Es stellte sich heraus, dass ich den AppPool mit Identity: ApplicationPoolIdentity anstelle von NetworkService hatte. Sobald ich das umgeschaltet habe (unter Erweiterte Einstellungen in IIS7.5), bekam ich nicht mehr die Aufforderung des Servers nach zusätzlichen Zugangsdaten und das Pass-Through funktionierte perfekt.

Hoffe, dass hilft!

0

Nur für den Fall, dass es hilfreich ist, war das Problem für mich, dass ich meinen Anwendungspool im klassischen Modus verlassen hatte, um zu versuchen, NTFS-Berechtigungen zu verwenden. Ich habe das nie zum Laufen gebracht, aber sobald ich es zurück in den integrierten Modus geschaltet habe, konnte ich die Tags <allow> und <deny> verwenden, um den Zugriff bestimmter Benutzer zu konfigurieren.