Ich habe eine MVC 4.0-Website mit Formularauthentifizierung und versuche, Authentifizierung Timeout zu behandeln. Insbesondere muss ich ajax
Anfragen nach einem Timeout anders als reguläre Anfragen anders behandeln, da das Forms Authentication System von MVC ein 302 Found
(Redirect
) auf die Login-Seite als Antwort auf die ajax
Anfrage sendet ... endet dies mit dem Ajax Anruf einen 200 Success
HttpStatusCode erhalten, wenn das ist offensichtlich nicht das, was ich senden möchte!Behandeln Sie nicht authentifizierte AJAX-Anforderungen in MVC-Formularauthentifizierung
Wie kann ich die nicht authentifizierten Anfragen ajax
behandeln?
Die Erweiterung AuthorizeAttribute
ist natürlich nicht die Antwort, da die Autorisierung erst nach der Authentifizierung erfolgt. HandleUnauthorizedRequest
wird nie in dieser Situation (as opposed to the different answers in the question)
Ich kann jede Anfrage in der global.asax
abfangen und überprüfen Sie es dort ... aber das scheint wie der falsche Weg, um darüber zu gehen.
Authorization in meinem web.config ist wie so gesetzt:
<authentication mode="Forms">
<forms loginUrl="Login"
protection="All"
timeout="60"
name=".ASPXAUTH"
path="/"
requireSSL="false"
slidingExpiration="true"
defaultUrl="Main"
cookieless="UseDeviceProfile"
enableCrossAppRedirects="false" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
<sessionState mode="InProc" timeout="60"></sessionState>
Könnten Sie vielleicht einen httpHandler oder HttpModule verwenden, um diese spezifische Anfrage zu bearbeiten? – mahlatse
@mahlatse Ich bin mir nicht sicher, was du meinst ... MVC Routing und Controller nicht verwenden? –
überprüfen Sie diesen Beitrag, http://StackOverflow.com/Questions/15798828/httpmodule-only-on-specific-MVC-Route, bitte überprüfen Sie die Antwort von Stockbreak – mahlatse