Authentifizierung und Autorisierung für permanente SignalR-Verbindungen (SignalR 1.x)
von Patrick Fletcher, Tom FitzMacken
Warnung
Diese Dokumentation gilt nicht für die neueste Version von SignalR. Sehen Sie sich ASP.NET Core SignalR an.
In diesem Thema wird beschrieben, wie Sie die Autorisierung für eine persistente Verbindung erzwingen. Allgemeine Informationen zur Integration von Sicherheit in eine SignalR-Anwendung finden Sie unter Einführung in die Sicherheit.
Erzwingen der Autorisierung
Um Autorisierungsregeln bei Verwendung einer PersistentConnection zu erzwingen, müssen Sie die AuthorizeRequest
-Methode überschreiben. Sie können das Authorize
Attribut nicht mit persistenten Verbindungen verwenden. Die AuthorizeRequest
-Methode wird vom SignalR-Framework vor jeder Anforderung aufgerufen, um zu überprüfen, ob der Benutzer autorisiert ist, die angeforderte Aktion auszuführen. Die AuthorizeRequest
Methode wird nicht vom Client aufgerufen. Stattdessen authentifizieren Sie den Benutzer über den Standardauthentifizierungsmechanismus Ihrer Anwendung.
Das folgende Beispiel zeigt, wie Anforderungen auf authentifizierte Benutzer beschränkt werden.
public class AuthenticatedConnection : PersistentConnection
{
protected override bool AuthorizeRequest(IRequest request)
{
return request.User.Identity.IsAuthenticated;
}
}
Sie können eine beliebige benutzerdefinierte Autorisierungslogik in der AuthorizeRequest-Methode hinzufügen. z. B. überprüfen, ob ein Benutzer zu einer bestimmten Rolle gehört.