Проверка подлинности и авторизация для постоянных подключений SignalR
Патрик Флетчер (Patrick Fletcher), Том ФитцМаккен (Tom FitzMacken)
Предупреждение
Эта документация не подходит для последней версии SignalR. Ознакомьтесь с ASP.NET Core SignalR.
В этом разделе описывается, как применить авторизацию для постоянного подключения. Общие сведения об интеграции безопасности в приложение SignalR см. в статье Общие сведения о безопасности.
Версии программного обеспечения, используемые в этом разделе
- Visual Studio 2013
- .NET 4.5
- SignalR версии 2
Предыдущие версии этого раздела
Сведения о более ранних версиях 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;
}
}
Вы можете добавить любую настраиваемую логику авторизации в метод AuthorizeRequest; например, проверка принадлежности пользователя к определенной роли.