Может ли WCF, размещенный в службе Windows, выдавать себя за вызывающего пользователя домена Windows из asp.net веб-приложение?

#asp.net #wcf

#asp.net #wcf

Вопрос:

У меня есть веб-приложение, в котором есть ссылка на службу wcf, развернутую в службе Windows. Веб-пользователь отправляет запрос в службу WCF, которая затем вызывает хранимую процедуру. Веб-приложение запущено под управлением проверки подлинности Windows и помечено как олицетворяющее. WCF выполняется как привязка wshttp.

Все это расположено на одном компьютере. Я хочу, чтобы служба WCF выдавала себя за пользователя веб-приложения. Возможно ли это? Может кто-нибудь, пожалуйста, подсказать мне, как этого добиться?

Спасибо.

Ответ №1:

Да, это возможно. Существуют некоторые незначительные ограничения, если приложение и служба запущены в одной системе, но ваш сценарий не должен страдать от этого. Из Как: Выдавать себя за клиента в службе:

Когда клиент и служба запущены на одном компьютере и клиент работает под системной учетной записью (то есть локальной системой или сетевой службой), клиент не может быть выдан за клиента при установлении защищенного сеанса с токенами контекста безопасности с сохранением состояния. WinForms или консольное приложение обычно запускаются под учетной записью, зарегистрированной в данный момент, поэтому эту учетную запись можно олицетворять по умолчанию. Однако, когда клиент является ASP.NET страница, и эта страница размещена в IIS 6.0 или IIS 7.0, тогда клиент по умолчанию запускается под учетной записью сетевой службы. Все системные привязки, поддерживающие безопасные сеансы, по умолчанию используют маркер контекста безопасности без состояния. Однако, если клиент является ASP.NET страница и защищенные сеансы с использованием токенов контекста безопасности с сохранением состояния, клиент не может быть выдан за клиента.

Особых ограничений нет, если ваша служба запущена как служба Windows.

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

1. каковы незначительные ограничения?

2. Улучшен ответ, чтобы включить ограничения.