Ich habe eine Seite, die richtig funktioniert, aber wenn ich einen verweigerten Benutzer für die ganze Seite ausstelle, leitet er mich auf die Anmeldeseite um, die zu funktionieren scheint, ABER die CSS funktioniert nicht. Daher gibt es kein Styling.
Kann jemand helfen? Meine web.config ist wie folgt
%Vor%Diese Anmeldeseite verwendet eine Site.master verfügt über das folgende Stylesheet, formatiert das Dokument jedoch nicht, wenn das oben Genannte enthalten ist
%Vor%Um zu bestätigen, dass ich den obigen Teil in web.config entferne, funktioniert es, daher ist das CSS enthalten und beng gestylt
Ich dachte, es könnte etwas damit zu tun haben, dass das CSS verweigert wird. Also habe ich folgendes hinzugefügt, aber es macht keinen Unterschied. Ich weiß, dass der site.master auf der Anmeldeseite gerendert wird, weil ich die Header etc ..
sehe %Vor%Ich habe auch Firebug in Firefox verwendet, um die CSS anzuzeigen, wenn die Autorisierungs-Tags in web.config enthalten sind, dann gibt es an, dass es kein CSS gibt. Wenn ich die Tags entferne, kann ich das CSS sehen und die Seite wird korrekt gerendert.
Ich muss etwas verpassen. Jede Hilfe wirklich geschätzt
Danke im Voraus
BEARBEITEN
Fiddler gibt an, dass die site.css verschoben wurde ??
%Vor%
Versuchen Sie, die Tilda (~) im Pfadattribut Ihres Standorts zu entfernen. Wenn Sie sich das Fiddler-Ergebnis ansehen, ist es eine Rückrufanfrage für Ihr CSS. Daher führt die nicht authentifizierte Anforderung für die Seite wiederum zu nicht authentifizierten Anforderungen für Ressourcen (die CSS).
Ich versuche generell, ein Styles-Verzeichnis im Stammverzeichnis der Anwendung zu platzieren und dann ein Hilfsprogramm wie T4MVC oder meine eigenen Hilfsmethoden zu übersetzen und zu vermeiden, das ../../
Verzeichnis-Crawling herauszufinden.
Verwenden Sie fiddler , um genau zu sehen, was mit dieser Ressource passiert? Kann Licht auf das Geheimnis werfen. Es sollte 403 sein, wenn es nicht autorisiert ist. Kann 404 sein? Wenn es nicht in einem virtuellen Verzeichnis ist, könnten Sie einfach schreiben:
%Vor%(Verzeichnisdurchquerung ist schwach)
Update - jetzt mehr Infos
Nice fiddler use;) Wie auch immer, da 302s (temporär umleiten) Ihre CSS-Dateien zu Validierung benötigen, ist das Problem Ihre Formularauthentifizierung.
Sie stoßen wahrscheinlich auf das Problem runAllManagedModuleForAllRequest="true" >. Lesen Sie diesen Beitrag für Informationen.
Oder legen Sie den gesamten Zugriff auf den Inhaltsordner fest, um den Zugriff zuzulassen. Du bist fast da, aber es müsste sein:
%Vor%Der 302 leitet Sie vom Login-Framework ab, um Sie bei der Anforderung des CSS anzumelden.
Der Trick dabei ist, dass Ihre MVC-App nicht die Sicherheit über web.config konfigurieren sollte, sondern Sie sollten die [Authorize] -Attribute auf Ihren Controllern verwenden, die Ihr CSS nicht stören.
Sie können der App einfach erlauben, auf Ihre CSS-Datei zuzugreifen:
%Vor%Tags und Links asp.net-mvc asp.net asp.net-membership