У меня есть служба WCF, в которой я пытаюсь настроить набор учетных данных, чтобы они использовались не только для службы, но и для всех последующих операций на NAS.
В настоящее время яустановили атрибут [OperationBehavior(Impersonation = ImpersonationOption.Required)]
в методе и установили <identity impersonate="true" userName="DOMAINUSER" password="PASSWORD"/>
в сервисе web.config.Поскольку это внутренняя служба, и я не хочу требовать от пользователя специальных учетных данных, я бы хотел использовать <basicHttpBinding>
с <security mode="None">
.Проблема заключается в том, что при установке этого способа я получаю сообщение об ошибке:
The contract operation requires Windows identity for automatic impersonation.
A Windows identity that represents the caller is not provided by
binding 'BasicHttpBinding' for contract.
При установке, как указано выше, WindowsIdentity.GetCurrent().Name
возвращается NT AUTHORITY \ NETWORK SERVICE несмотря на то, что в web.config установлена директива олицетворения.Кажется, он хочет, чтобы учетные данные передавались от потребителя / клиента, а не устанавливались изнутри службы.
Возможно ли, чтобы олицетворение содержалось полностью внутри службы, а не зависело от потребителя при отправке учетных данных?
Спасибо!