Authentification et autorisation pour les connexions persistantes SignalR (SignalR 1.x)

par Patrick Fletcher, Tom FitzMacken

Avertissement

Cette documentation ne concerne pas la dernière version de SignalR. Jetez un coup d’œil à ASP.NET Core SignalR.

Cette rubrique explique comment appliquer une autorisation sur une connexion persistante. Pour obtenir des informations générales sur l’intégration de la sécurité dans une application SignalR, consultez Présentation de la sécurité.

Appliquer l’autorisation

Pour appliquer des règles d’autorisation lors de l’utilisation d’une connexion permanente , vous devez remplacer la AuthorizeRequest méthode . Vous ne pouvez pas utiliser l’attribut Authorize avec des connexions persistantes. La AuthorizeRequest méthode est appelée par SignalR Framework avant chaque requête pour vérifier que l’utilisateur est autorisé à effectuer l’action demandée. La AuthorizeRequest méthode n’est pas appelée à partir du client ; au lieu de cela, vous authentifiez l’utilisateur via le mécanisme d’authentification standard de votre application.

L’exemple ci-dessous montre comment limiter les demandes aux utilisateurs authentifiés.

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

Vous pouvez ajouter n’importe quelle logique d’autorisation personnalisée dans la méthode AuthorizeRequest ; par exemple, vérifier si un utilisateur appartient à un rôle particulier.