Authentification et autorisation pour les connexions persistantes SignalR
par Patrick Fletcher, Tom FitzMacken
Avertissement
Cette documentation ne concerne pas la dernière version de SignalR. Consultez ASP.NET Core SignalR.
Cette rubrique explique comment appliquer l’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é.
Versions logicielles utilisées dans cette rubrique
- Visual Studio 2013
- .NET 4.5
- SignalR version 2
Versions précédentes de cette rubrique
Pour plus d’informations sur les versions antérieures de SignalR, consultez Anciennes versions de SignalR.
Questions et commentaires
Laissez vos commentaires sur la façon dont vous avez aimé ce tutoriel et sur ce que nous pourrions améliorer dans les commentaires en bas de la page. Si vous avez des questions qui ne sont pas directement liées au tutoriel, vous pouvez les publier sur le forum ASP.NET SignalR ou StackOverflow.com.
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.