Uwierzytelnianie i autoryzacja połączeń trwałych usługi SignalR (SignalR 1.x)
Autor: Patrick Fletcher, Tom FitzMacken
Ostrzeżenie
Ta dokumentacja nie jest przeznaczona dla najnowszej wersji usługi SignalR. Przyjrzyj się ASP.NET Core SignalR.
W tym temacie opisano sposób wymuszania autoryzacji na trwałym połączeniu. Aby uzyskać ogólne informacje na temat integrowania zabezpieczeń z aplikacją SignalR, zobacz Wprowadzenie do zabezpieczeń.
Wymuszanie autoryzacji
Aby wymusić reguły autoryzacji podczas korzystania z elementu PersistentConnection , należy zastąpić metodę AuthorizeRequest
. Nie można użyć atrybutu Authorize
z połączeniami trwałymi. Metoda jest wywoływana AuthorizeRequest
przez platformę SignalR Framework przed każdym żądaniem w celu sprawdzenia, czy użytkownik ma autoryzację do wykonania żądanej akcji. Metoda AuthorizeRequest
nie jest wywoływana z klienta. Zamiast tego uwierzytelniasz użytkownika za pośrednictwem standardowego mechanizmu uwierzytelniania aplikacji.
W poniższym przykładzie pokazano, jak ograniczyć żądania do uwierzytelnionych użytkowników.
public class AuthenticatedConnection : PersistentConnection
{
protected override bool AuthorizeRequest(IRequest request)
{
return request.User.Identity.IsAuthenticated;
}
}
W metodzie AuthorizeRequest można dodać dowolną niestandardową logikę autoryzacji; na przykład sprawdzenie, czy użytkownik należy do określonej roli.