5

Ich habe eine standardmäßige ASP.NET-Website, die auf unserer Entwicklungsmaschine (interne Maschine in unserem Serverraum) bereitgestellt wird.IIS7 und Authentifizierungsprobleme

Nun kann diese Dev-Site sowohl von internen als auch von externen Benutzern aufgerufen werden. Nun, in IIS6 hatten wir es so, dass Anonyme Authentifizierung wurde aus und etwas anderes wurde eingeschaltet .. geben den Benutzern ein Popup-Modell-Box für Benutzername und Passwort. I Denken Sie sie mussten einige Benutzernamen oder ein Passwort eingeben, die in einer Datei web.config definiert wurde? (Nicht ihre Website Konto Benutzername/Passwort)/

Jetzt, mit IIS7, wenn ich drehen Anon Auth aus, und schalten Sie Grund oder Windows-Auth, erhalte ich Zugriff auf die Website, aber es versucht zu Loggen Sie sich mit diesen Zugangsdaten ein .. und nicht das Konto, mit dem sich der Benutzer angemeldet hat (mit einer Standard-ASP.NET-Webformularseite).

So ... ist es möglich, die gesamte Website zu sperren und die Tester erhalten allgemeinen Zugriff auf die Website .. was ist anders als ihre Website Benutzername und Passwort. Diese Benutzernamen und Passwörter werden stattdessen auf der Website verwendet.

macht das Sinn?

Prost!


<authentication mode="Forms"> 
    <forms loginUrl="~/Pages/Login.aspx" protection="Validation" timeout="1000000000" requireSSL="false" slidingExpiration="true" defaultUrl="Default.aspx"> 
    </forms> 
</authentication> 

gibt es keine Genehmigung Abschnitt.

auch, wenn ich 'Digest Auth' zu iis7 hinzufügen und aktivieren (und deaktivieren Sie alles sonst), bekomme ich das Popup-Fenster (Kewl!), Aber ich bin mir nicht sicher, welche Anmeldeinformationen ich übergeben muss Kann ich diese Anmeldedaten manuell definieren (also sind sie von den Benutzern der Website getrennt)?

+1

Dies ist eine vollkommen vernünftige Erwartung und eine sehr häufige Anforderung. – Aaron

+0

@Aaron - ich wünschte, wir könnten das IIS-Team bitten, dies hinzuzufügen :( –

Antwort

6

Der integrierte IIS7-Modus unterstützt die Zwei-Phasen-Authentifizierung von IIS6 nicht. Im Wesentlichen würde IIS6 seine Authentifizierung (Windows) durchführen, gefolgt von ASP.net, das seine Authentifizierung (Formulare) durchführt. Aber mit IIS7 ist im integrierten Modus alles gleich, sodass Sie nur die eine oder andere Authentifizierungsmethode verwenden können.

Sie können den App-Pool entweder in den klassischen Modus umwandeln oder this workaround folgen, damit er mit dem integrierten Modus funktioniert.

+0

sieht aus wie eine Winnah! –

+2

Aber es muss ein sauberer einfacher Weg als das. Das ist so Overkill schreiben benutzerdefinierte Wrapper-Module, um eine solche einfache Fricking-Aufgabe zu erreichen – Aaron

+0

@Aaron - vereinbarte Kumpel, voll und ganz einverstanden! (Leider) –