ist es möglich, Sitzungsdaten von einer asp.net mvc-Anwendung und einer Python-Anwendung zu teilen?

8

Ich möchte in der Lage sein, einige Daten zwischen einer asp.net mvc-Anwendung und einer python / django-Anwendung freizugeben. Die Art von Daten, die ich teilen möchte, sind Authentifizierungs- oder Sitzungsdaten.

    
Dave 07.03.2012, 09:30
quelle

4 Antworten

4

Dies ist natürlich möglich, solange Sie auf einige gemeinsam genutzte Ressourcen zwischen beiden Frameworks zugreifen. Es gibt wahrscheinlich mehrere Möglichkeiten, es zu tun, aber eine der offensichtlichsten wäre die Verwendung einiger Shared Backstore, dh. Datenbank oder vielleicht Memcached, die schneller wäre. Ich bin kein Django-Benutzer, aber soweit ich weiß, wird Memcached darin unterstützt ...

Es gibt natürlich ein komplizierteres Szenario, das mit Datenkompatibilität zusammenhängt. Sie werden wahrscheinlich ein austauschbares Format verwenden müssen, das beide Frameworks verstehen. XML, JSON, BSON oder ähnlich. Selbst wenn Sie memcached verwenden, müssen Sie diese Übersetzung machen.

    
Robert Koritnik 15.03.2012 19:03
quelle
3

Wie ich die Sitzung teilen würde ...

Machen Sie die Session-Cookie-Subdomäne agnostisch

%Vor%

Habe meine beiden Subdomains, zwischen denen ich die Sitzung teilen möchte

%Vor%

Erstellen Sie in ASP.net einen einfachen Webdienst oder generischen Handler, der die Sitzung des Benutzers in JSON oder XML serialisiert zurückgibt.

Wenn Sie einen generischen Handler verwenden, denken Sie daran, die Interfaces IReadOnlySessionState oder IRequiresSessionState für die Klasse zu verwenden.

Sie können jetzt von der extra.mydomain.tld aus Ihren SessionMalue-Handler oder -Dienst www.mydomain.tld / [Get / Set] aufrufen. Es wird auf Ihrem ".mydomain.tld" -Cookie abholen und ermöglichen, modifizierende Werte zu teilen.

    
Louis Ricci 20.03.2012 12:25
quelle
2

Ich würde den folgenden Ansatz mit einer gemeinsam genutzten Datenbank empfehlen (könnte ein gemeinsamer Cache oder ein anderer Datenspeicher sein):

  1. Wenn ein Benutzer auf eine Ihrer Anwendungen in Ihrer Domäne zugreift, erstellen Sie ein Cookie mit dem Schlüssel "_shared_session" und dem Wert einer zufälligen Zeichenfolge, die von Ihrer Anwendung generiert wird;
  2. Speichern Sie den Wert dieses Cookies in der Datenbank und verknüpfen Sie ihn mit einem JSON-Objekt, das die Daten enthält, die Sie für Anwendungen freigeben möchten.
  3. Wenn der Benutzer auf die andere Anwendung zugreift, überprüfen Sie, ob der Cookie mit dem Schlüssel "_shared_session" existiert und lesen Sie seinen Wert;
  4. Mit dem Wert des Cookies können Sie das gemeinsame JSON-Objekt abrufen.

Schnelle Antwort: Es sollte ein Filter vorhanden sein, der vor dem Erstellen einer neuen Sitzung nach einem freigegebenen Cookie sucht

    
barbolo 21.03.2012 22:21
quelle
0

Es gibt eine Option zum Speichern des Sitzungsstatus in der MS SQL Server-Datenbank, die standardmäßig verfügbar ist. Verwenden Sie die Schritte aus dem nächsten KB Ссылка Es geht mehr um die Konfiguration als um die Implementierung. Sie können Ihren eigenen benutzerdefinierten Speicheranbieter schreiben, aber gibt es dafür einen Grund?

Ich bin nicht vertraut mit Python, aber es gibt mindestens ODBC-Treiber dafür Ссылка

    
amdmax 17.03.2012 04:18
quelle

Tags und Links