2017-09-01 5 views
-1

Ich habe WebApi in MVC .net erstellt, wo ich Microsoft.OWIN für die Authentifizierung und den Zugriff Token Generation und hosting meine APIs in AWS verwenden.AWS Load Balancer

Da nun Load Balancer zur Verteilung des Datenverkehrs verwendet wird, generiert AWS automatisch mehrere Instanzen der EC2-Instanz, dh mehrere Server. Wenn und wo die Login Api aufgerufen wird, wird die Anfrage an einen Hauptserver gesendet und generiert der Token und in Claims Identity, speichern wir UserID von diesem angemeldeten Benutzer, aber wenn andere APIs gleichzeitig zu mehreren Instanzen zufällig aufgerufen werden, dann ist das UserID, das beim Anmelden in Claims Identity gespeichert wird, nicht von anderen zufällig generierten Servern zugänglich.

Also, ich weiß nicht, ob es Owin Problem oder AWS Load Balancer Problem gibt, gibt es Funktionalität in AWS oder OWIN, so dass UserID von mehreren Servern zugänglich sein wird?

und ich kann OWIN nicht von meiner API entfernen.

+1

Sie müssen entweder verteilte Sitzungen irgendwie einrichten (ich habe keine Ahnung, wie man das mit den Technologien macht, die Sie verwenden) oder Session-Stickiness in Ihrem Load Balancer aktivieren. –

+0

Ja, ich habe Sticky Sessions in aws hinzugefügt, aber es funktioniert nicht für mich –

Antwort

0

Sie benötigen einen zentralen Sitzungsspeicher, etwa Redis oder eine zentrale Datenbank. Ich habe gesehen, dass beide von verschiedenen Anwendungen verwendet werden, und ich bin mir sicher, dass es andere Methoden gibt, die als zentraler Punkt für alle Sitzungen dienen können.

+0

Ich bin im Zweifel über Redis, dass es mit OWIN oder nicht funktioniert, aber ich denke, das ist die letzte Option für mich. –

Verwandte Themen