Ich habe ein komplexes Projekt, bestehend aus einer ASP MVC-Website, ASP SignalR-Hub und Xamarin Mobile App (alle drei separaten Projekte). Da das ASP MVC-Web den SignalR-Hub referenziert und beide zusammen gehostet werden, kann es nur eine OWIN-Startup-Klasse für beide Projekte geben (andernfalls erhalte ich den Fehler, dass es nur eine einzige OWIN-Startup-Klasse geben kann). Und da ich auch ASP Identity in der Web App verwende, rufe ich die app.UseCookieAuthentication
Methode an, die dann einen Cookie benötigt, bevor ich mit dem SignalR Hub kommunizieren darf. Somit ist die Kommunikation zwischen der Xamarin Mobile App und dem SignalR-Hub nicht möglich.So verwenden Sie Cookie-Authentifizierung in Xamarin SignalR
Ich glaube, diese Frage kann auf zwei verschiedene Arten zu beantworten:
- Ist es möglich, Cookie-Authentifizierung nur in dem Web-App und nicht in dem SignalR Hub zu verwenden? Entweder durch Erstellen von 2 OWIN Startup-Klassen, oder durch Angabe, für welche Anfragen der Cookie wirklich benötigt wird?
- Wenn die obige Lösung nicht möglich/"richtig" ist, wie erreiche ich die Cookie-Authentifizierung in der Xamarin App? Die official web schlägt vor,
response.Cookies[FormsAuthentication.FormsCookieName]
zu verwenden, aberFormsAuthentication.FormsCookieName
ist in Xamarin nicht verfügbar. Wie soll ich den Cookie erstellen? Und kann ich dann vor dem Zugriff auf den SignalR-Hub die Login-Methode der Web-App aufrufen?