Я ищу некоторые технические подробности о том, где фактическое имя пользователя + пароль (учетные данные) хранятся во время обмена сообщениями, используя привязку WCF, как показано ниже.Детали реализации учетных данных 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 ... любая помощь?
Edit:
Ниже является то, что конфигурация безопасности для клиента выглядит как в производстве
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None" />
<message clientCredentialType="UserName" establishSecurityContext="false" />
</security>
отлично - так что в теле под «запросить маркер безопасности» вы также увидите имя пользователя + пароль или? –
Я не уверен, что RequestSecurityToken имеет отношение к этому вопросу о UsernameTokens ...? –
Это только первая часть (запрос) рукопожатия WS-Trust, используемая для установления контекста безопасности. Вы можете прочитать более подробную информацию об этом здесь: http://specs.xmlsoap.org/ws/2005/02/trust/ws-trust.pdf –