Autenticación y autorización para las conexiones persistentes de SignalR

por Patrick Fletcher, Tom FitzMacken

Advertencia

Esta documentación no se aplica a la última versión de SignalR. Eche un vistazo a ASP.NET Core SignalR.

En este tema se describe cómo aplicar la autorización en una conexión persistente. Para información general sobre la integración de la seguridad en una aplicación SignalR, consulte Introducción a la seguridad.

Versiones de software empleadas en este tema

Versiones anteriores de este tema

Para obtener información sobre versiones anteriores de SignalR, consulte Versiones anteriores de SignalR.

Preguntas y comentarios

Deje sus comentarios sobre este tutorial y sobre lo que podríamos mejorar en los comentarios en la parte inferior de la página. Si tiene alguna pregunta que no esté directamente relacionadas con el tutorial, puede publicarla en el foro de ASP.NET SignalR o en StackOverflow.com.

Aplicación de autorización

Para aplicar reglas de autorización al utilizar PersistentConnection, debe invalidar el método AuthorizeRequest. No puede usar el atributo Authorize con conexiones persistentes. SignalR Framework llama al método AuthorizeRequest antes de cada solicitud para comprobar que el usuario está autorizado para realizar la acción solicitada. No se llama al método AuthorizeRequest desde el cliente; en su lugar, se autentica al usuario mediante el mecanismo de autenticación estándar de la aplicación.

En el ejemplo siguiente se muestra cómo limitar las solicitudes a los usuarios autenticados.

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

Puede agregar cualquier lógica de autorización personalizada en el método AuthorizeRequest; por ejemplo, comprobar si un usuario pertenece a un rol determinado.