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

Патрик Флетчер, Том ФицМАккен

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

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

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

Версии программного обеспечения, используемые в этом разделе

Предыдущие версии этого раздела

Сведения о более ранних версиях SignalR см. в разделе SignalR более ранних версий.

Вопросы и комментарии

Оставьте отзыв о том, как вам понравилось это руководство и что, по вашему мнению, мы можем улучшить в комментариях в нижней части страницы. Если у вас есть вопросы, которые не связаны напрямую с руководством, их можно опубликовать на форуме ASP.NET SignalR или StackOverflow.com.

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

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

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

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

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