Я ищу некоторые технические подробности о том, где фактическое имя пользователя + пароль (учетные данные) хранятся во время обмена сообщениями с использованием привязки WCF, как показано ниже.
<bindings>
<wsHttpBinding>
<binding name="wsHttp">
<security mode="TransportWithMessageCredential">
<transport/>
<message clientCredentialType="UserName"
negotiateServiceCredential="false"
establishSecurityContext="true" />
</security>
</binding>
</wsHttpBinding>
</bindings>
Затем внутри клиентского приложения я вызываю эту услугу, передавая действительный набор кредитов, например,
using (SupplierServiceClient client = new SupplierServiceClient()) {
client.ClientCredentials.UserName.UserName = "admin";
client.ClientCredentials.UserName.Password = "password";
SupplierList = client.GetSupplierCollection();
}
Сначала я предположил, что WCF берет эти данные и помещает их в заголовок SOAP, но это не так из WSDL ... какая-нибудь помощь?
Редактировать
Ниже показано, как конфигурация безопасности для клиента выглядит в рабочей среде
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None" />
<message clientCredentialType="UserName" establishSecurityContext="false" />
</security>