Безопасное соединение SignalR между .NET-клиентом и сервером

В SignalR.NET мы устанавливаем соединение, как показано ниже между клиентом и сервером:

var connection = new HubConnection("http://mysite/");

Затем мы подписываем события и начинаем соединение, как показано ниже:

connection.Start().Wait();

Что делать, если я хотел бы установить безопасное соединение между клиентом и сервером. Как мы можем достичь этого с помощью текущих функций?

Я заметил, что существует тип свойства System.Net.ICredentials в классе HubConnection. Это путь для этого? Если да, то как мы должны обрабатывать Auth на стороне сервера для наших концентраторов?

Ответы

Ответ 1

Вот как я создал свою настройку:

  var hubConnection = new HubConnection("http://siteurl");
  hubConnection.Credentials = CredentialCache.DefaultNetworkCredentials;
  hubProxy = hubConnection.CreateProxy("My.Hub.Namespace");

  hubConnection.Start().Wait();

Конечно, вы можете передать разные учетные данные, я использую DefaultNetworkCredentials

Учетные данные, возвращаемые DefaultNetworkCredentials, представляют собой учетные данные для проверки подлинности для текущего контекста безопасности, в котором работает приложение. Для клиентского приложения обычно это учетные данные Windows (имя пользователя, пароль и домен) пользователя, запускающего приложение. Для приложений ASP.NET сетевыми учетными данными по умолчанию являются учетные данные пользователя вошедшего в систему пользователя или пользователя, который выдает себя за него.