Autenticação e autorização para conexões persistentes do SignalR

por Patrick Fletcher, Tom FitzMacken

Aviso

Esta documentação não é para a versão mais recente do SignalR. Dê uma olhada em ASP.NET Core SignalR.

Este tópico descreve como impor a autorização em uma conexão persistente. Para obter informações gerais sobre como integrar a segurança em um aplicativo SignalR, consulte Introdução à segurança.

Versões de software usadas neste tópico

Versões anteriores deste tópico

Para obter informações sobre versões anteriores do SignalR, consulte Versões mais antigas do SignalR.

Perguntas e comentários

Deixe comentários sobre como você gostou deste tutorial e o que poderíamos melhorar nos comentários na parte inferior da página. Se você tiver dúvidas que não estão diretamente relacionadas ao tutorial, poderá postá-las no fórum do ASP.NET SignalR ou StackOverflow.com.

Impor autorização

Para impor regras de autorização ao usar um PersistentConnection , você deve substituir o AuthorizeRequest método . Não é possível usar o Authorize atributo com conexões persistentes. O AuthorizeRequest método é chamado pelo SignalR Framework antes de cada solicitação para verificar se o usuário está autorizado a executar a ação solicitada. O AuthorizeRequest método não é chamado do cliente; em vez disso, você autentica o usuário por meio do mecanismo de autenticação padrão do aplicativo.

O exemplo a seguir mostra como limitar solicitações a usuários autenticados.

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

Você pode adicionar qualquer lógica de autorização personalizada no método AuthorizeRequest; por exemplo, verificar se um usuário pertence a uma função específica.