Autenticazione e autorizzazione per le connessioni persistenti di SignalR

di Patrick Fletcher, Tom FitzMacken

Avviso

Questa documentazione non è per la versione più recente di SignalR. Esaminare ASP.NET Core SignalR.

In questo argomento viene descritto come applicare l'autorizzazione a una connessione permanente. Per informazioni generali sull'integrazione della sicurezza in un'applicazione SignalR, vedere Introduzione alla sicurezza.

Versioni software usate in questo argomento

Versioni precedenti di questo argomento

Per informazioni sulle versioni precedenti di SignalR, vedere Versioni precedenti di SignalR.

Domande e commenti

Lasciare commenti e suggerimenti su come è piaciuta questa esercitazione e cosa è possibile migliorare nei commenti nella parte inferiore della pagina. Se si hanno domande che non sono direttamente correlate all'esercitazione, è possibile pubblicarle nel forum di ASP.NET SignalR o StackOverflow.com.

Applicare l'autorizzazione

Per applicare le regole di autorizzazione quando si usa un oggetto PersistentConnection , è necessario eseguire l'override del AuthorizeRequest metodo . Non è possibile usare l'attributo Authorize con connessioni persistenti. Il AuthorizeRequest metodo viene chiamato da SignalR Framework prima di ogni richiesta per verificare che l'utente sia autorizzato a eseguire l'azione richiesta. Il AuthorizeRequest metodo non viene chiamato dal client, ma l'utente viene autenticato tramite il meccanismo di autenticazione standard dell'applicazione.

L'esempio seguente illustra come limitare le richieste agli utenti autenticati.

public class AuthenticatedConnection : PersistentConnection 
{ 
    protected override bool AuthorizeRequest(IRequest request) 
    { 
        return request.User.Identity.IsAuthenticated; 
    } 
}

È possibile aggiungere qualsiasi logica di autorizzazione personalizzata nel metodo AuthorizeRequest; ad esempio, verificando se un utente appartiene a un determinato ruolo.