Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - Programmierung » SQL Anywhere Datenzugriff-APIs » SQL Anywhere-Webdienste » HTTP-Sitzungen verwenden

 

Sitzungsverwaltung mit Cookies

Die Cookie-Statusverwaltung wird mit der Systemprozedur sa_set_http_header mit dem Feldnamen "Set-Cookie" unterstützt. Bei der Verwendung von Cookies für die Statusverwaltung muss keine Sitzungs-ID in den URL einbezogen werden. Stattdessen stellt der Client die Sitzungs-ID in seinem HTTP-Cookie-Header bereit. Der Nachteil der Verwendung von Cookies für die Statusverwaltung ist, dass die Cookieunterstützung in einer ungeregelten Umgebung, in der Clients Cookies möglicherweise deaktiviert haben, nicht zuverlässig ist. Daher sollte eine Webanwendung sowohl die URL- als auch die Cookie-Sitzungsstatusverwaltung unterstützen. Eine URL-Sitzungs-ID hat, wie im vorigen Abschnitt beschrieben, Vorrang, wenn ein Client sowohl eine URL als auch eine Cookie-Sitzungs-ID bereitstellt. Es ist die Verantwortung der Webanwendung, das SessionID-Cookie zu löschen, wenn die Sitzung abläuft oder die Sitzung explizit gelöscht wird (z.B. sa_set_http_option('SessionID', NULL)).

DECLARE session_id VARCHAR(64);
DECLARE tm TIMESTAMP;
SET tm=now(*);
SET session_id = 'session_' || 
    CONVERT( VARCHAR, SECONDS(tm)*1000+DATEPART(millisecond,tm));
CALL sa_set_http_option('SessionID', session_id);
CALL sa_set_http_header( 'Set-Cookie', 
        'sessionid=' || session_id || ';' ||
        'max-age=60;' ||
        'path=/session;' );