Что такое эквивалент WCF? - PullRequest
0 голосов
/ 08 марта 2010

Я пытаюсь перенести код, основанный на WSE3.0, на WCF. По сути, старый код имеет следующую конфигурацию:

<microsoft.web.services3>
    <diagnostics>
      <trace enabled="true" input="InputTrace.webinfo" output="OutputTrace.webinfo" />
    </diagnostics>
    <tokenIssuer>
      <statefulSecurityContextToken enabled="false" />
    </tokenIssuer>
</microsoft.web.services3>

При вызове той же службы через мой «Справочник услуг» я получаю эту ошибку:

Запрос не содержит требуемый заголовок безопасности

Мой переплет выглядит так:

<basicHttpBinding>
    <binding name="LegalUnitGetBinding" closeTimeout="00:01:00" openTimeout="00:01:00"
                receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
                bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                useDefaultWebProxy="true">
                <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                    maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                <security mode="Transport">
                </security> 
     </binding>
</basicHttpBinding>

Из того, что я понял, для службы, которую я вызываю, требуется только SSL-соединение, поскольку она получает имя пользователя и пароль как часть параметра запроса.

Любая помощь или предложения будут с благодарностью.

1 Ответ

1 голос
/ 08 марта 2010

Вам придется передавать учетные данные на стороне клиента и проверять их на стороне сервера. Я полагаю, вы используете IIS для хостинга? Вместо перефразирования - вот сообщение MVP , которое должно направить вас в правильном направлении.

Смена ключа, которая заставит вас задуматься в вашем конфигурационном файле:

<security mode="TransportWithMessageCredential">
...
</security>
...