Formularauthentifizierungsumleitung css / script enthält die Anmeldeseite mit HTTP 302
Habe ich einige gehört, die auf eine login-Seite, eine css-Datei und eine js-Datei.
<link rel="stylesheet" type="text/css" href="../../ext/resources/css/ext-all.css" />
<script type="text/javascript" src="../../ext/bootstrap.js"></script>
Leider die Anfragen, die der browser macht für diese bekommen die 302-Antwort. Forms-Auth ist zu sehen, dass der Antrag als unberechtigt, und dass Sie diese auf der login-Seite. Ist es nicht klar, dass die Anfrage von der login-Seite in den ersten Platz.
GET http://localhost:50880/ext/resources/css/ext-all.css HTTP/1.1
HTTP/1.1 302 Found
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/Account/LogOn?ReturnUrl=%2fext%2fresources%2fcss%2fext-all.css">here</a>.</h2>
</body></html>
Ich dachte, vielleicht ist die Einstellung der Berechtigungen der Ordner enthält (extern) an alle die helfen könnten.
Ich habe nicht hatte dieses Problem in anderen Projekten.
InformationsquelleAutor der Frage Dan Revell | 2011-06-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie ausschließen, css-Dateien und Bilder aus immer authentifiziert ist wie folgt in der Konfigurationsdatei. Mit dem location-tag schließen Sie eine einzelne Datei oder ein Verzeichnis.
InformationsquelleAutor der Antwort PSK
Ich hatte das gleiche problem. Hier ist, wie ich es gelöst.
In IIS7, klicken Sie auf auf Ihrer website, doppelklicken Sie dann auf die Schaltfläche Authentifizierung.
Klicken Sie auf Anonyme Authentifizierung, klicken Sie dann auf die Bearbeiten... - link auf der rechten Seite.
Stellen Sie sicher, dass die "Identität des Anwendungspools" Kontrollkästchen aktiviert ist.
Meine Anwendungspool läuft unter "Netzwerkdienst" Benutzer (nicht "ApplicationPoolIdentity"). Sie können wählen Sie die Identität, in den Erweiterten Einstellungen Ihres Anwendungspool in IIS. Dieser Benutzer hat vollen Zugriff auf das Datei-system für die website.
InformationsquelleAutor der Antwort David Conlisk
So, hier ist was ich getan habe, ganz gelöst ist das Problem.
Erste, ich habe die änderung auf das web.Konfiguration wie alle anderen, sagte zu tun.
Ich bin über die Anonyme Authentifizierung in IIS, und erklärt in dieser Ausgabe, ging ich in den IIS - > Anwendungspools > Rechts-Klick auf meine application Pools > Bearbeiten > verändert den app-pool zu verwenden, die Identität des Anwendungspools.
DANN - ich ging in den übergeordneten Ordner, die enthält meine Seite, ging in die Berechtigungen für die Ordner Hinzugefügt und den server NETWORK SERVICE-Konto für den Zugriff auf den Ordner. Das hat es für mich. Es ist, weil der Anwendungspool ausgeführt wird, unter ApplicationPoolIdentity, die den NETWORK SERVICE account auf dem lokalen Rechner.
Hoffe, das jemand hilft!
InformationsquelleAutor der Antwort vcuankit
Das Problem, das ich hatte war, dass ich runtergeladen hatte ein jquery-plugin aus dem internet kopiert und es in mein content Verzeichnis auf dem webserver und Windows hatte die Dateien gesperrt, so dass Sie konnte nicht zugegriffen werden ordnungsgemäß durch den webserver. Freigabe der Dateien in Windows gelöst ist das Problem.
InformationsquelleAutor der Antwort MikeD
Spät Antwort hier, aber ich wollte helfen, etwas Licht in diese Schuppen IISsue. (siehe, was ich getan habe?)
Zuerst möchte ich sagen, dass David Conlisk Antwort-sicher ist sicher-Brand-Nagel-es-in-dem-Kopf-bring-es-in-jeder-Zeit-Antwort. Aber wenn Sie wie ich und haben bereitgestellt viele Anwendungen mit Formularen und Anonyme auth, wo die Anonyme Auth Identität gesetzt ist, um die IUSR-und alle die plötzliche ich sehe das problem jetzt, dann hören Sie, wie ich reproduziert das Problem und hoffentlich verschont von der gleichen Misere.
Mein standard-Praxis ist es zu haben, meine web-Anwendung AppPoolIdentity ausführen als Netzwerk Service. Dann gehe ich halt in das entsprechende Verzeichnis auf der Festplatte, die das virtuelle Verzeichnis verweist -> Rechte Maustaste -> Eigenschaften -> Registerkarte Sicherheit -> Bearbeiten -> Hinzufügen-Netzwerk-Service-Benutzer> Grant read/write Berechtigungen.
Dann aktiviere ich Anonyous-Authentifizierung auf die Verzeichnisse, die ich brauche (js, css, etc.) Der app-pool-Identität IUSR-Konto standardmäßig.
OK. Jetzt, ganz plötzlich, in meiner dev-Umgebung, fange ich an 302 forms-auth leitet auf alle meine css und js! Was ist passiert? Ich habe ein SVN-switch auf meiner web-Anwendung auf einen anderen Zweig in der Quelle der. Ugh. Es komplett aufgebockt, alle meine auf der Festplatte Berechtigungen für jede einzelne Datei. Die einzige Möglichkeit, die ich jemals in der Lage gewesen, um es zu beheben, löschen Sie den gesamten web-app, und machen Sie einen frische-Check-out und re-gelten, Netzwerk-Dienst, Berechtigungen Lesen (oder gelten die Berechtigungen für jede einzelne Datei... und ja, ich habe versucht, das entfernen und neu-hinzufügen der Berechtigungen für den übergeordneten Ordner).
So auch dieses mal, ich entscheide mich "die Hölle mit ihm. Ich bin mit meinem web-app als Lokalen System. Das zeigen die Volume-Zugriffsrechte deren Chef. Dies hat für mich gearbeitet, von Zeit zu Zeit als eine Kurzfristige Abhilfe". Aber ach, heute nicht. Ich schwöre Ihnen, dass Sie vor meinen Augen ich bin auf der Suche auf zwei Bereitstellungen der forms-auth, web-app, mit genau der gleichen Konfiguration und das 302 Problem ist nur die Reproduktion auf meine dev-Maschine. Der einzige Unterschied ist die aktuelle SVN switch auf meinem Rechner.
Sobald ich mich Einloggen und bekomme eine Forms-Auth Cookie, die js-und css-download just fine.
Geduld mit mir, ich habe gerade eine schockierende Entdeckung. Alle Server habe ich diese bereitgestellt haben Lesen " - Berechtigungen COMPUTERNAME\Benutzer. Und meine dev Maschine nicht. Einmal habe ich Hinzugefügt, um meine dev-Maschine, konnte ich herunterladen, mein css.
TLDR;
Moral von der Geschichte ist, können Sie halten die Anonyme Auth Identität IUSR, aber dann haben Sie und erteilen Sie allen Benutzern lese-Berechtigungen auf Ihrem web-app auf der Festplatte.
Da dies eine schlechte Idee ist (aus Sicherheitsgründen), ich werde es in meiner neuen Praxis zu verabschieden, David C s Antwort und machen die Anonyme Auth Identity laufen als die Identität des Anwendungspools.
InformationsquelleAutor der Antwort matrixugly