Autenticación y autorización para las conexiones persistentes de SignalR (SignalR 1.x)
por Patrick Fletcher, Tom FitzMacken
Advertencia
Esta documentación no es para 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.
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.