Проверка подлинности и авторизация для постоянных подключений SignalR (SignalR 1.x)

Патрик Флетчер( Patrick Fletcher),Том ФицМаккен (Tom FitzMacken)

Предупреждение

Эта документация не для последней версии SignalR. Взгляните на ASP.NET Core SignalR.

В этом разделе описывается, как применить авторизацию для постоянного подключения. Общие сведения об интеграции безопасности в приложение SignalR см. в статье Введение в безопасность.

Принудительное применение авторизации

Чтобы применить правила авторизации при использовании PersistentConnection , необходимо переопределить AuthorizeRequest метод . Атрибут нельзя использовать с постоянными Authorize подключениями. Метод AuthorizeRequest вызывается платформой SignalR Framework перед каждым запросом, чтобы убедиться, что пользователь авторизован для выполнения запрошенного действия. Метод AuthorizeRequest не вызывается из клиента. Вместо этого выполняется проверка подлинности пользователя с помощью стандартного механизма проверки подлинности приложения.

В приведенном ниже примере показано, как ограничить запросы пользователями, прошедшими проверку подлинности.

public class AuthenticatedConnection : PersistentConnection 
{ 
    protected override bool AuthorizeRequest(IRequest request) 
    { 
        return request.User.Identity.IsAuthenticated; 
    } 
}

В метод AuthorizeRequest можно добавить любую настраиваемую логику авторизации; например, проверка принадлежности пользователя к определенной роли.