2009-05-09 8 views
1

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> 

Antwort

3

Dies ist die meisten tun wahrscheinlich IIS-Einstellungen für die Authentifizierung und Berechtigungen für den Ordner der Website auf dem Webserver. Ich würde beide vor allem anderen überprüfen.

+0

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

+0

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

+0

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

0

Ich glaube, Sie die Berechtigungen für IUSER, IWAM

mit dem Windows-Explorer den Ordner festlegen müssen Sie Berechtigungen erteilen wollen, sind. Klicken Sie mit der rechten Maustaste auf den Ordner und wählen Sie "Eigenschaften". Im daraufhin angezeigten Dialog klicken Sie auf den Reiter "Sicherheit" oben. Sie können dann Sicherheit für diese Konten (IUSR_machineName, IWAM_macnineName und ASPNET) hinzufügen oder bearbeiten.

+0

Dies ist eine gehostete Lösung, daher kann ich nicht zum Ordner navigieren. Willst du damit sagen, dass ich es auf meiner lokalen Kopie machen soll? – Whozumommy

+0

Nein, Ihre lokale Kopie funktioniert bereits, aber nicht auf dem Server. Durchsuchen Sie die Systemsteuerung Ihres Hosts, um dies zu beheben, oder indem Sie die Ordnerberechtigung mit einer FTP-Client-Anwendung wie FileZilla festlegen –

1

Ich fotografiere nur im Dunkeln, aber haben Sie eine <identity> Einstellung in Ihrer web.config?

<system.web> 
    ... 
    <identity impersonate="true"/> 
    ... 
</system.web> 

Wenn ja, kann es hilfreich sein, diese Zeile zu entfernen. Es kann auch helfen, Ihren Hosting-Anbieter zu fragen, warum die Windows-Authentifizierung plötzlich auf Ihre Website angewendet wird. Wie andere bereits erwähnt haben, gibt es IIS-Einstellungen, die dieses Verhalten verursachen könnten.

Verwandte Themen