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