5 Stimmen

ASP.NET: Der Benutzer bleibt nicht länger als 30 Minuten eingeloggt

Das ärgert mich wirklich und ist wahrscheinlich der Grund für die schwindende Nutzerzahl auf meiner Website. Ich verwende Forms Authentication, um meine Benutzer anzumelden.

Ich habe den Parameter "Persist" standardmäßig auf "true" gesetzt, wenn sich der Benutzer anmeldet:

RedirectFromLoginPage(userString, True)

y

SetAuthCookie(userString, True)

In meiner web.Config-Datei habe ich das Attribut "timeout" auf "129600" gesetzt:

<authentication mode="Forms">
    <forms loginUrl="/registration/login.aspx"
    timeout="129600" slidingExpiration="true" />
</authentication>

Ich habe meine Hosting-Firma angerufen und sie sagten, dass das Problem an meinem Code liegen muss. Ich glaube nicht, dass dies der Fall ist.

Was zum #( @%&@(# %&@(#*% könnte falsch sein??

EDIT Dies funktionierte gut, bis ich den Host wechselte. Das brachte mich zu der Annahme, dass es nicht an meinem Code lag, sondern tatsächlich am Host.

EDIT 2 Als Antwort auf einen Kommentar, Fiddler zu verwenden, ist hier, was ich von Fiddler erhalte, wenn ich die Seite lade:

Set-Cookie: .ASPXAUTH=; expires=Tue, 12-Oct-1999 07:00:00 GMT; path=/; HttpOnly
Set-Cookie: .ASPXAUTH=\[some gobbledygook\]; 
  expires=Sun, 15-Nov-2009 20:46:29 GMT; path=/; HttpOnly
Set-Cookie: ASP.NET\_SessionId=vudqghfplqnh5hz1qw1cwebt; path=/; HttpOnly

3voto

Scott Ivey Punkte 39470

Ihr App-Pool könnte recycelt werden - entweder nach einem bestimmten Zeitraum oder auf der Grundlage eines Schwellenwerts für Speicher oder Prozessor. Wenn es früher gut funktioniert hat und sich sonst nichts geändert hat, würde ich das als erstes untersuchen.

2voto

Eric J. Punkte 143512

Es gibt eine Reihe von Faktoren, die eine Zeitüberschreitung verursachen können. Dieser Blog bietet einen guten Überblick.

1voto

David Punkte 33347

Sie können Fiddler verwenden, um das Verfallsdatum des Cookies zu überprüfen, das von der Anmeldeseite zurückkommt.

1voto

Artur Carvalho Punkte 6343

Wie Sie wissen, habe ich ein ähnliches Problem. Was passieren könnte, ist, dass der Anwendungspool herunterfahrend .

Machen Sie einen Test: Öffnen Sie Ihre Sitzung in 2 verschiedenen Browsern und laden Sie in einem von ihnen die Webseite in weniger als 20 Minuten neu, während Sie im anderen nichts tun.

Es kann jedoch passieren, dass Sie bei keiner dieser Anwendungen abgemeldet werden, da der App-Pool am Leben erhalten wird.

bearbeiten:

Versuchen Sie dies: http://authors.aspalliance.com/paulwilson/articles/?id=12

0voto

Thomas Gabriel Punkte 81

Die Ursache für dieses Verhalten ist bei mir in der Regel der IIS Idle Timeout.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X