2017-04-11 4 views
0

In PHP kann ich wählen, eine bestimmte Sitzung zu verwenden, indem ich Session_id() als Setter benutze.Set SessionId in klassischem ASP?

Gibt es ähnliche Funktionen in Classic ASP/VBScript? Ich habe eine VBScript-Site, die je nach Seite entweder direkt vom Browser oder intern über HTTP aufgerufen wird. Leider behandelt ASP diese als zwei getrennte Sitzungen, da der Computer des Benutzers einen anruft und der Server selbst den anderen aufruft. Ich möchte den Serveraufrufen sagen, "Hey, benutze Session 123456", so kann es Informationen mit dem Benutzer teilen, der Seiten direkt aufruft.

Irgendwelche Ratschläge? Sie können die Sitzung, die auf einer Seite verwendet wird, ändern oder benennen?

+0

Können Sie ein Beispiel geben? Die Serveranrufe werden Cookies auch nicht mit dem Browser teilen ... –

+1

Es gibt keine solche integrierte Methode für ASP-Sitzungen. Aber Sie können 'cookie'-Header manuell setzen (indem Sie den Wert des Session-Cookies von' Request.ServerVariables ("ALL_RAW") 'oder ähnlichem) in Ihrer internen Anfrage analysieren. –

+1

Woher machen Sie interne Anfragen? Fragt weil, ein Deadlock passiert, wenn beide der ASP sind. –

Antwort

3

Es gibt keine integrierte Methode wie PHP Session_id() in ASP Classic.

Das Session-Objekt von ASP verfügt über einen strikten Sperrmechanismus, der die Konsistenz des Status garantiert, sodass Sie keine weiteren Anforderungen mit demselben Sitzungsbezeichner im selben Anwendungspool stellen können.

Auf der anderen Seite ist es einfach, eine Bridge zu implementieren, um den Sitzungsstatus mit einer anderen Plattform wie PHP unter derselben Domäne zu teilen.


How to access ASP classic session variable from PHP?

0

Ich bin mir nicht sicher, ob ich Ihr Problem richtig verstanden habe. Sie benötigen für jeden Benutzer eine Variable? Warum haben Sie keine Anwendungsvariable verwendet?

<% 
    x=session.sessionID 
    if not instr(application("x"),x)>0 then 
     application("x")=application("x") & x &";" 
    end if 

    aArr=split(application("x"),";") 

    for i=0 to ubound(aArr) 
     REM this will show you all used session.variables 
     response.write aArr(i)&"<br>" 
    next 
%> 
+0

ASP verfolgt Sitzungen durch Festlegen eines Cookies im Browser des Benutzers, der eine Sitzungs-ID enthält. Manchmal arbeitet diese spezielle Website mit einer Seite (ein PHP-Skript im Allgemeinen), die eine ASP-Seite direkt serverseitig über cURL aufruft. In diesem Fall ist der "Benutzer" nicht die Person mit dem Browser, sondern das PHP-Skript - ohne den Cookie, den ich in meinem Browser habe. Ich brauche diese Fälle, um irgendwie die gleiche Sitzung wie der Mensch mit einem Webbrowser zu haben. Wenn ASP PHP aufruft, kann PHP einfach die Sitzungs-ID setzen, aber in die andere Richtung, VBScript scheint das nicht zu können. –

+0

Warum haben Sie keine eigene Session-ID erstellt?oder verwenden Sie eine Anwendungsvariable anstelle der Sitzung zum Beispiel: wenn Sitzung ("mySession") & "" = "" dann Sitzung ("mySession") = Jahr (Datum) & Monat (Datum) & Tag (Datum) & ersetzen (time, ":", "") & request.serverVariables ("remote_addr") Ende if – multinett

+0

Da dies in Classic VBScript nicht möglich ist. Das ist buchstäblich die Frage! –

Verwandte Themen