2013-07-02 20 views
6

Ho un'istanza SignalR self-hosted, utilizzando OWIN. Vorrei implementare l'autorizzazione. I miei utenti avranno già effettuato l'accesso a un'applicazione ASP.NET MVC, utilizzando l'autenticazione basata su moduli.Accettare i cookie di autenticazione dei moduli ASP.NET in un'implementazione SignalR ospitata da OWIN?

Poiché le due applicazioni saranno disponibili sullo stesso URL, i cookie saranno condivisi tra i due. Come si accetta un cookie di Autenticazione moduli in un'applicazione SignalR self-hosted?

Chiarimento: sto parlando di un browser che accede a un hub SignalR self-hosted utilizzando le stesse credenziali utilizzate per accedere a un'applicazione IIS separata (ma correlata e installata sullo stesso host).

Quindi, la domanda è: come faccio ad agganciare la pipeline del server SignalR per acquisire il cookie .ASPXAUTH e usarlo per impostare l'attuale corrente prima di chiamare l'hub?

Se aiuta, posso mettere un po 'di Nancy nel mix.

+0

Hai mai trovato una soluzione al tuo problema. Sto tentando lo stesso (anche se la mia app MVC e il mio servizio SignalR self-hosted sono su porte diverse). –

risposta

0

Se l'utente è già autenticato e connesso, è possibile controllare il seguente all'interno del vostro hub SignalR:

Context.User.Identity.IsAuthenticated 

assicurare questa proprietà è impostata su true. È possibile inserire questo controllo all'interno del costruttore dell'hub per bloccare/rimuovere la connessione. Se false, puoi reindirli a un'altra pagina.

+0

L'autenticazione si verifica nell'applicazione MVC, non nel servizio. Il cookie .ASPXAUTH può essere consumato in entrambi, ma come posso collegarlo alla pipeline SignalR o OWIN? –

+1

Roger, vedo quello che stai cercando ma in realtà non ho mai provato a farlo. Per la classe di connessione, esiste una proprietà chiamata "CookieContainer". Si trova in [Microsoft.AspNet.SignalR.Client.Connection] (http://msdn.microsoft.com/en-us/library/microsoft.aspnet.signalr.client.connection.cookiecontainer (v = vs.111) .aspx) dove puoi ottenerlo/impostarlo. All'interno di questo, è possibile utilizzare il codice da [risposta] (http://stackoverflow.com/questions/13022415/signalr-net-client-fails-to-connect-upd-how-to-set-auth-cookie) a prova ad aggiungerlo. – SeanPrice

Problemi correlati