Ich habe eine ASP.NET MVC-Anwendung erstellt und Formularauthentifizierung verwendet. In meinem Controller-Aktion habe ich:Warum fordert meine ASP.NET MVC-Anwendung die Windows-Authentifizierung an?
[autorisieren (User = "me, Joe")]
, die große gearbeitet hat. Letzte Nacht, als ich die neuesten Änderungen veröffentlichte und versuchte, meine Website zu sehen, öffnete sie ein Windows-Authentifizierungsdialogfeld. Ich habe meinen ganzen Code angeschaut und kann nicht herausfinden, WARUM sich Windows-Authentifizierung ändern würde. Meine web.config-Datei hat sich seit mindestens 10 Tagen nicht geändert. Wenn ich den Code von meiner Entwickler-Box aus führe, mache ich das nicht ... nur wenn er von meinem Host ausgeführt wird. Und wenn ich die Authorize-Zeile von meiner Controller-Aktion entferne, passiert das nicht.
Wie kann ich das beheben oder wie kann ich meine Lösung debuggen, um zu sehen, warum dies geschieht?
BTW, meine web.config sagt:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
Dies ist eine gehostete Lösung, also wäre das irgendwo in meinem webbasierten Kontrollfeld für Hosts? Warum würde sich das ändern und, was noch wichtiger ist, warum würde es aufhören zu funktionieren, wenn ich die Authorize-Zeile aus meinem Code entferne? – Whozumommy
Wenn Sie das Autorize-Attribut herausnehmen, ist anonymer Zugriff erlaubt - also keine Autorisierungsaufforderung. Ich vermute, dass etwas passiert ist, um die Autorisierungseinstellungen zurückzusetzen, um die Windows-Authentifizierung zuzulassen. Wenn diese von der übergeordneten und der übergeordneten Einstellung übernommen würden, würde dies dies erklären. – tvanfosson
Aber wie kann ich das in einer gehosteten Umgebung einstellen oder testen? Mein Host Control Panel (HELM) scheint keine Möglichkeit zu bieten, die Eigenschaften eines Ordners festzulegen. – Whozumommy