5

Ich brauche Hilfe herauszufinden, warum mein Authentifizierungsticket nach etwa einer Stunde auf meiner gehosteten Website ausläuft. Aber wenn ich die Site lokal betreibe, bleibt das Authentifizierungsticket für den richtigen Zeitraum am Leben.herauszufinden, warum asp.net Authentifizierungsticket abläuft

Das ist mein localhost web.config:

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOn" timeout="20160" slidingExpiration="true" path="/" /> 
</authentication> 

und das ist mein Gastgeber web.config:

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOn" timeout="20160" slidingExpiration="true" domain=".mywebsite.com" path="/" /> 
</authentication> 

Ich weiß, dass das Authentifizierungsticket erstellt wird, weil:

  • Ich kann es im Browser sehen Cookies
  • Ich bleibe eingeloggt e uch nach dem Schließen des Browsers und
  • Wiedereröffnung ich auch nach Website recycles angemeldet bleiben (Ändern und web.config es zu recyceln Speichern)

Wenn ich das Cookie Ablaufdatum im Browser überprüfen Sie es später 2 Wochen ist. Nach etwa einer Stunde läuft meine Authentifizierung jedoch immer ab.

Was kann ich tun, um herauszufinden, warum die Authentifizierung der gehosteten Website so früh abläuft? Ich weiß nicht, wie ich dieses Problem lösen soll, da meine gehostete Website die einzige ist, die Probleme hat.

Update 1: Nachdem ich 1 Stunde gewartet habe, überprüfe ich meinen Browser und sehe, dass der Cookie noch existiert. In der Tat ist es Ablaufdatum für 2 Wochen später festgelegt. Aber wenn ich die Seite neu lade oder versuche, auf Seiten zu gehen, die eine Authentifizierung erfordern, werde ich zur Anmeldeseite weitergeleitet.

+0

Ist das Ticket definitiv abgelaufen und kein Session-Problem? –

+0

Ich benutze keine Sitzungen auf dieser Seite. Alles befindet sich im Authentifizierungsticket, das im Cookie enthalten ist. Außerdem haben Sitzungen nichts mit Formularauthentifizierung zu tun, oder? – codette

+0

Das Authentifizierungsticket/Cookie, auf das Sie sich beziehen, - die Sitzung. Dieser Cookie ".ASPXAUTH" verwaltet die Sitzung auf dem Server. –

Antwort

5

Ich habe einen Maschinekey-Eintrag in system.net hinzugefügt. Etwas wie folgt aus:.

<machineKey validationKey="aaa" 
    decryptionKey="bbb" validation="SHA1" /> 

und jetzt hält es der Benutzer angemeldet Aber jetzt scheint es, wie ich Leistungsprobleme habe. Die Seite, die bisher ca. 500ms zum Laden benötigt hat, benötigt etwa doppelt so viel Zeit.

+0

Ich hatte genau das gleiche Problem und das hat es behoben. Ich habe nur den validationKey angegeben und es hat den Trick ohne Leistungseinbußen gemacht. Die einzige Erklärung, die ich finden kann, ist, dass der automatisch generierte Schlüssel (der Standard ist, wenn Sie keinen expliziten Schlüssel angeben) sich aus irgendeinem Grund hin und wieder ändert. Da die Dokumentation scheint wirklich schlecht zu sein, hier ist wie es geht: Fügen Sie die Tag in web.config und setzen Sie den ValidationKey auf eine zufällige Zeichenfolge von hexadezimalen Zeichen (0-9 und A-F). Die Gesamtlänge der Zeichenfolge sollte genau 128 Zeichen betragen. – smt

+0

Meine Freude war verfrüht. Das Problem besteht weiterhin, sodass das Hinzufügen eines expliziten Validierungsschlüssels nicht hilfreich war. Keine Ahnung, wie das behoben werden kann, außer das gesamte FormsAuthentication-Zeug zu verwerfen und ein benutzerdefiniertes Authentifizierungssystem zu implementieren. – smt

+0

Ich habe den Maschinenkey Eintrag in system.web nicht system.net gefunden. –

0

würde ich einige Dinge versuchen, dies bei der Fehlersuche:

  • IIS Version & Einstellungen zwischen Ihrem localhost & Hosting. Wahrscheinlich gibt es einige Unterschiede in Anwendungspool sind Einstellung
  • In IIS 7 gibt es eine spezielle Einstellung hierfür: read here
+0

Ich konnte den Link für IIS 7 nicht erkennen, aber überschreibt dies die Einstellungen, die ich in meiner web.config angegeben habe? – codette

+0

Ich bin mir nicht sicher. aber Sie wollen wahrscheinlich versuchen, den IIS zu konfigurieren –

0

Haben Sie Ihr Hosting-Provider gefragt, ob die machine.config diesen Satz hat zu einem diferent Wert ? Einstellungen in machine.config überschreiben die Datei web.config.

+0

Ja, sie zeigten mir die machine.config und ich sehe keine Authentifizierung Abschnitt dort. Ich nehme also an, dass meine web.config-Werte die Wirkung haben. – codette

Verwandte Themen