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
- Visual Studio 2013
- .NET 4.5
- SignalR, versión 2
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.