Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.