Ich habe einmal dieses und es war zwischen einer PHP-Website und einer ASP.NET-Website (mir die ASP.NET Entwickler zu sein, aber einige Bits über PHP zu wissen).
Wenn App1 der Einstiegspunkt für den/die Benutzer ist, sollte App1 bei der Anmeldung ein Schlüssel/Wert-Paar für diesen Benutzer erstellen, das aus dem Benutzernamen und einem generierten Schlüssel (z. B. einer GUID) besteht. Programmatisch sollte es mit App2 kommunizieren und diesen Schlüssel senden (zB einen Hintergrund-Thread starten). Angenommen, Benutzer JohnDoe meldet sich erfolgreich bei App1 an.
App1 einen Schlüssel erzeugt (3l3kjlk3j4lkj34, JohnDoe) und sendet sie über eine Art von Kommunikation zu App2 (beispielsweise über HTTP ruft eine URL wie www.app2.com/SetTempKey.aspx?userId=JohnDoe & key = 3l3kjlk3j4lkj34 - eine Seite, die aus Sicherheitsgründen nur Anfragen von einer bestimmten IP erlauben würde.
App2 wird die temporäre Zugriffsschlüssel empfangen und speichern. Nehmen wir an, App2 hat die Anmeldeseite unter www.app2.com/login.aspx.
In App1 erzeugen Sie einen Link zu www.app2.com/login.aspx?tempKey=3l3kjlk3j4lkj34 mit einem anständigen Label wie "Go to App2". Wenn der Benutzer auf den Link klickt, wird die Seite login.aspx in app2 aufgerufen. Überprüfen der Querystring auf das Vorhandensein der tempKey Querystring-Parameter und dann die Gültigkeit des Schlüssels in den temporären Schlüssel App2 gespeicherten überprüft, dass diese WIRKLICH JohnDoe ist.
App2 loggt ihn einfach durch Aufruf von FormsAuthentication.RedirectFromLoginPage ("JohnDoe", true) (zuerst der Benutzername und dann, wenn der formsAuth-Cookie persistent/not_session_lived sein sollte).
... und das ist es ziemlich viel.
Ausgezeichnete Frage, ich bin froh, es auf Stackoverflow zu sehen! +1! –