stworzyłem pełnomocnika usługi sieci Web z Visual Studio 2008 i stworzony dla mnie następujący wpis w app.config:Połącz z WCF do usługi WebService uwierzytelnionego się podając nazwę użytkownika/hasło
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="MyNameHandlerSoapBinding" 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://www.***/***/***"
binding="basicHttpBinding" bindingConfiguration="MyNameHandlerSoapBinding"
contract="***.MyNameHandler" name="MyName">
</endpoint>
</client>
</system.serviceModel>
Webservice ma uwierzytelnianie za pomocą nazwy użytkownika/hasła, więc muszę dodać ją gdzieś tutaj.
Jestem trochę zagubiony w morzu dokumentacji WCF, myślę, że muszę zmienić z basicHttpBinding na wsHttpBinding lub customBinding, aby móc dodać elementy uwierzytelniające, ale tak naprawdę nie rozumiem tego. Czy ktokolwiek mógłby podać jakąś szybką wskazówkę lub przydatne łącze, które mówi, jak to zrobić?
EDIT:
Zmieniłem sekcję zabezpieczeń:
<security mode="Transport">
<transport clientCredentialType="Basic" proxyCredentialType="None"
realm="" />
</security>
i dodaje w kodzie:
ws.ClientCredentials.UserName.UserName = "";
ws.ClientCredentials.UserName.Password = "";
teraz wydaje się to może być przy użyciu poświadczeń, ale to podając mi błąd:
dostarczony schemat URI „http” jest nieprawidłowy URI oczekiwano „https”
ja nawet nie wiem, czy jest to właściwa droga ...
WCF to piekło konfiguracji. Z jakiego sklepu autorskiego chcesz korzystać? Windows ... Członkostwo ASP lub niestandardowe jak baza danych? I przejrzałeś to: http://msdn.microsoft.com/en-us/library/bb398990.aspx –
Rzeczywiście. Jest to zewnętrzna usługa sieciowa, która ma unikalną nazwę użytkownika/hasło do użytku zawsze dla wszystkich moich połączeń. I to jest http. Sądzę więc, że może to być więcej autoryzacji punktu końcowego, jeśli ma to sens! – antonioh
Na początku jest niepokojące, że nie możesz podać nazwy użytkownika i hasła w dowolnym miejscu w konfiguracji (ale tylko w kodzie) - czy znowu chciałbyś mieć hasło w pliku konfiguracyjnym z czystym tekstem? NAPRAWDĘ? –