Как задать аутентификацию консольного приложения (локальной системы) для концентратора signalR на веб-сервере - PullRequest
0 голосов
/ 03 июля 2018

Итак, у нас есть IIS, который запускается при аутентификации Windows, и у нашего asp.net есть базовый концентратор signalR:

public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR();
        }
    }

public class DemoHub : Hub
    {
        public void SendHello(string text)
        {
            Clients.All.hello(new Random().Next() + " - " + text);
        }
    }

У нас есть клиент консольного приложения, который также прост:

class Program
{
    static async Task Main(string[] args)
    {
        var url = "http://localhost/";

        var hubConnection = new HubConnection(url);
        hubConnection.Credentials = CredentialCache.DefaultCredentials;
        var hubProxy = hubConnection.CreateHubProxy("DemoHub");
        await hubConnection.Start();

        while (true) {
            Console.WriteLine("Type something!");
            var text = Console.ReadLine();
            await hubProxy.Invoke("SendHello", new [] {text});
        }
    }
}

В настоящее время клиент использует учетные данные Windows CredentialCache.DefaultCredentials, но в производственной среде это не будет работать, поскольку консоль будет службой Windows, работающей на local system, а веб-сервер будет расположен на компьютере в интрасети.

Какие у меня есть варианты? (SSL) - Сертификат, к сожалению, не вариант. Могу ли я использовать токен? Есть ли вариант, когда нам не нужно переписывать IIS или всю аутентификацию сервера?

1 Ответ

0 голосов
/ 03 июля 2018

Я использую похожее консольное приложение для мониторинга своего хоста IIS и каждые 5 секунд отправляю обновления о различных счетчиках производительности на страницу мониторинга для обновления диаграмм / графиков и других элементов.

Я запускаю консольное приложение как запланированное задание, используя учетную запись Windows, где я могу ввести учетные данные, с которыми оно должно работать. Это специальная учетная запись для запуска служб, запланированных задач и т. Д. Как вы обычно не используете свои собственные учетные данные.

Что касается работы в качестве службы Windows, это также должно быть применимо. Используйте учетную запись с соответствующими разрешениями на узле IIS и настройкой службы для работы с этими учетными данными.

...