У меня есть служба Windows, которая самостоятельно размещает службу Wcf, эта служба Wcf имеет привязку tcpBinding с настройками по умолчанию. Служба Windows работает как локальная система.
На службу Wcf (настройки по умолчанию) ссылается веб-приложение, работающее в интегрированном конвейере IIS 7.5 в своем собственном пуле приложений со своей собственной идентификацией.
Оба работают на одном компьютере.
Все работает нормально, за исключением того, что в Wcf Service, когда я проверяю идентичность текущего потока с помощью:
Thread.CurrentPrincipal.Identity.Name
Возвращает пользователя пула приложений веб-приложения ... это не то, что я ожидаю. Похоже, что в сервисе Wcf происходит какое-то подражание.
Это стандартное поведение? Я не могу найти документацию по этому вопросу.
И значит ли это, что когда я пытаюсь получить доступ к базе данных в сервисе Wcf, я ввожу идентификационный прыжок?
Редактировать , конфигурация на стороне сервиса:
Type serviceType = typeof(WcfService);
host = new ServiceHost(serviceType);
Binding tcpBinding = new NetTcpBinding( );
Uri tcpBaseAddress = new Uri("net.tcp://localhost:8001/Test");
host.AddServiceEndpoint(typeof (WcfService), tcpBinding, tcpBaseAddress);
host.Open();
На стороне клиента:
NetTcpBinding tcpBinding = new NetTcpBinding(SecurityMode.Transport);
windowsService = new WindowsService.WcfServiceClient(tcpBinding, new EndpointAddress("net.tcp://localhost:8001/Test"));