После того, как я ударил головой в течение дня, я прошу помощи. У меня есть приложение Web Forms с хостингом WCF на одном компьютере. У службы WCF есть методы с некоторыми пользовательскими разрешениями (например, только «admin» может устанавливать пароли для пользователей).Пропустить заголовки сообщений на WCF через netTcpBinding
Приложение веб-форм использует аутентификацию форм, поэтому у меня есть HttpContext.Current.User
со всеми ролями, которые это использует. Таким образом, я использовал AuthCookie
передать объект через HttpRequestMessageProperty
и читать его так:
HttpRequestMessageProperty property =
OperationContext.Current.IncomingMessageProperties[HttpRequestMessageProperty.Name] as HttpRequestMessageProperty;
С basicHttpBinding
, что работал отлично. Но тогда мне нужно было реализовать протокол net.tcp, так что HttpRequestMessageProperty
больше не работает. Я попытался добавить его на MessageHeader
, но это тоже не сработает.
OperationContext.Current.IncomingMessageProperties
не получил ни один из моих заголовков ...
Так как я могу передать список ролей пользователей к моему WCF? Я использую безопасность Windows, как это, но мне нужно передать роли из HttpContext.Current.User
:
<netTcpBinding>
<binding transactionFlow="True">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</netTcpBinding>