приветствуя людей, мне нужно сослаться на внешний сервис в моем приложении MVC.
Я использую этот сервис для проверки токена аутентификации, который один из наших клиентов запросил, чтобы мы использовали.
Я портирую старый проект в MVC.
Я добавил веб-ссылку.
Конфиг был сгенерирован так:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="ExternalServicesSoap" 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="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://myapps.test.com/ExternalServices/ExternalServices.asmx"
binding="basicHttpBinding" bindingConfiguration="ExternalServicesSoap"
contract="AssertionService.ExternalServicesSoap" name="ExternalServicesSoap" />
</client>
В более старом мире ASP.NET я мог сделать следующее для конкретной службы, на которую я ссылаюсь, используя объект Assertion, определенный в ссылке на внешнюю службу.
var service = new ExternalServices();
Assertion assertion = service.Validate(Id);
if(assertion.Valid){}
Это не совсем тот случай в проекте MVC.
Кажется, я работаю с WCF.
Я не уверен, правильно ли я подхожу к этому в мире MVC.
Все, с чем мне нужно работать - это интерфейс ExternalServiesSoap или интерфейс ExternalServicesSoapChannel .
Ни один из которых не возвращает объект Assertion , как в мире ASP.Net.
Они оба имеют метод Validate , но возвращают ValidateAssertionResponse .
Объект ответа не имеет каких-либо полезных свойств; просто тело ответа.
Класс Assertion по-прежнему доступен, но, похоже, не возвращается ни одним из методов интерфейса.
Может кто-нибудь помочь мне, как правильно использовать один из этих интерфейсов?
спасибо