Authentifizierung und Autorisierung für permanente SignalR-Verbindungen

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.

In diesem Thema verwendete Softwareversionen

Frühere Versionen dieses Themas

Informationen zu früheren Versionen von SignalR finden Sie unter Ältere Versionen von SignalR.

Fragen und Kommentare

Bitte hinterlassen Sie Feedback dazu, wie Ihnen dieses Tutorial gefallen hat und was wir in den Kommentaren unten auf der Seite verbessern könnten. Wenn Sie Fragen haben, die nicht direkt mit dem Tutorial zusammenhängen, können Sie diese im ASP.NET SignalR-Forum oder StackOverflow.com posten.

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.