У нас есть процесс Windows Service, который постоянно обрабатывает сообщения отMicrosoft Messaging Queue. Действуя на эти сообщения, он вызывает методы из службы WCF.Вызов службы WCF, размещенной на сайте проверки подлинности форм из службы Windows.
Эта служба WCF размещена на веб-сайте ASP.net, где есть не только службы WCF , но и конечный пользовательский интерфейс. Как правило, WCF-методы - это , изменяющие структуры данных в памяти, а передние - их считывание. Данные постоянно изменяются, и клиентам необходимо незамедлительно получать уведомления об изменениях . (Мы используем SignalR.)
Все работает отлично до тех пор, пока сайт ASP.net использует Windows Интегрированная проверка подлинности. Теперь требуется, чтобы на передней панели были использованы формы Аутентификация. Это, разумеется, нарушило привязку WCF. Предыдущий связывании был:
<basicHttpBinding>
<binding name="BasicHttpBinding_ISessionWebService">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
Front-конечные пользователи не должны быть в состоянии назвать услуги. (На самом деле, они не должны быть в состоянии.)
В идеале я хотел бы службу WCF, чтобы сохранить с помощью проверки подлинности Windows и остальной части сайта для использования проверки подлинности форм, но я не думаю, что IIS поддерживает . Я бы предпочел не хранить и передавать пароль учетной записи , работающей под управлением Windows, но если это единственный способ, я могу жить с этим. I думал, что может быть какая-то привязка, использующая клиентский сертификат, но я не знаю, как это можно настроить.
Как я могу предоставить конечную точку WCF таким образом, чтобы она была защищена и может быть вызвана из службы Windows?