2009-03-11 4 views
0

Ich erstelle eine Anwendung, die den Inhalt eines Cookies erhält, das ein Formularauthentifizierungsticket von .net speichert. Dieser Teil ist erledigt. In diesem Ticket ist eine Ablaufzeit, standardmäßig 20 Minuten.Was ist eine gute Strategie für die Erneuerung des Ablaufs eines Forms Auth Ticket zwischen. NET und PHP?

In diesem Szenario meldet sich ein Benutzer an und wird auf der .net-Seite validiert. Dann werden sie zu meiner PHP-App weitergeleitet. Ich erhalte den Benutzernamen, den Ablauf des Tickets usw.

Wie kann ich das Ticket am besten erneuern, wenn der Nutzer in meiner App aktiv bleibt? Hier sind zwei mögliche Ansätze, ich bin sicher, es gibt mehr:

  1. 10 Minuten entfernt von Ablauf und wenn der Benutzer noch aktiv ist, ein .net Web-Service kontaktiert wird mir ein neues Ticket mit einem auszustellen neuer Ablauf Wenn die Seite 20 Minuten inaktiv ist, wird der Benutzer zur ursprünglichen .net-Anmeldung umgeleitet.

  2. PHP kümmert sich um den Ablauf mit einem Cookie auf seiner Seite. Wenn es sich 10 Minuten nähert und der Benutzer es noch durchsucht, wird es aktualisiert. Wenn die Seite 20 Minuten nicht verwendet wird, wird der Benutzer zurück zur ursprünglichen .net-Anmeldung umgeleitet.

Andere Vorschläge? Pros, Nachteile zu diesen beiden? Ich suche sowohl Geschwindigkeit als auch Sicherheit.

Antwort

1

Ich gehe von Ihrer Frage aus, dass Sie keine dauerhaften Cookies verwenden und dass Sie gleitende Ablaufzeiten verwenden. Wenn Sie versuchen, das gleiche Verhalten in PHP zu replizieren, dann sollten Sie einen Blick auf this werfen.

Nehmen wir ein Beispiel: Wenn auf die Anmeldeseite um 5:00 00:00:00 PM zugegriffen wird, sollte es um 5:10 00:00:00 PM ablaufen, wenn das Timeout-Attribut 10 ist und die Das Attribut slidingExpiration wird auf TRUE gesetzt. Wenn nun eine Webseite um 5:05 00:00:00 PM erneut durchsucht wird, werden die Zeitlimits für Cookies und Tickets auf 5:15 00:00:00 PM zurückgesetzt.

Grundsätzlich würden Sie die Ablaufzeit des Cookies immer dann aktualisieren, wenn der Benutzer auf eine Ihrer PHP-Seiten zugreift.

Eine andere Option ist das Einbetten von etwas wie einem IFRAME in Ihre Seiten, die ein ASPX von Ihrer .net-Site herunterziehen würde. Dadurch wird der Cookie "aufgefrischt".