Аутентификация SignalR

#c# #asp.net #asp.net-mvc #signalr

#c# #asp.net #asp.net-mvc #signalr

Вопрос:

У меня есть приложение ASP MVC5, использующее новую систему безопасности идентификации.Мой проект на самом деле представляет собой простое приложение для чата, использующее SignalR 2.0.3. Теперь проблема в том, что клиент выполняется в VB, который подключается к серверу чата (который является ASP.NET Сервер SignalR, размещенный на MVC5), и мне нужно аутентифицировать пользователя (в VB), используя метод входа сгенерированного accountcontroller. Я нашел пример в документации SignalR, но он не работает, я думаю, потому что это было сделано для аутентификации формы; вот код с веб-сайта SignalR (http://www.asp.net/signalr/overview/signalr-20/security/hub-authorization )

 private static bool AuthenticateUser(string user, string password, out Cookie authCookie)
{
    var request = WebRequest.Create("https://www.contoso.com/RemoteLogin") as HttpWebRequest;
    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";
    request.CookieContainer = new CookieContainer();

    var authCredentials = "UserName="   user   "amp;Password="   password;
    byte[] bytes = System.Text.Encoding.UTF8.GetBytes(authCredentials);
    request.ContentLength = bytes.Length;
    using (var requestStream = request.GetRequestStream())
    {
        requestStream.Write(bytes, 0, bytes.Length);
    }

    using (var response = request.GetResponse() as HttpWebResponse)
    {
        authCookie = response.Cookies[FormsAuthentication.FormsCookieName];
    }

    if (authCookie != null)
    {
        return true;
    }
    else
    {
        return false;
    }
}
  

(и затем передайте файл cookie в контейнер файлов cookie hubconnection)

есть ли какой-либо эквивалентный метод, который я могу использовать для входа моего пользователя с использованием метода accountcontroler / login ? или есть совершенно другой способ сделать это для новой идентификации?

Заранее спасибо

Комментарии:

1. Это может помочь github.com/gustavo-armenta/CookieAuthenticationSample

2. Вы можете найти близкий эквивалент вашего метода AuthenticateUser здесь . Ключевое различие между этим и тем, что у вас есть, заключается в том, что код, с которым я связан, выполняет два запроса, чтобы он мог отправить обратно токен защиты от подделки, который AccountController.Login ожидает по умолчанию. Вы можете увидеть, как это используется в CommonClient.cs .

3. спасибо, ребята. я нашел способ сделать это. но спасибо за ваши ответы!

4. Было бы полезно, если бы вы опубликовали, как вы это делаете, чтобы другие люди могли извлечь из этого урок

5. Вы должны узнать, как использовать jwt security, чтобы использовать signlar с аутентификацией