Salut,
J'avais créé une discussion sur le forum ASP .NET, mais je crois que ce sera mieux ici. Je me suis fait demander de faire des web services qui seront appelés par un site externe à mon serveur. Il doit utiliser le basichttpbinding, avoir une authentification Basic et être sécurisé avec SSL.

Voici mon code de web.config côté serveur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="Binding1">          
	   <security mode="Transport">
		<transport clientCredentialType="Basic"/>
	   </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="Behavior1">          
          <serviceMetadata httpsGetEnabled="true"/>          
          <serviceDebug includeExceptionDetailInFaults="true"/>          
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service behaviorConfiguration="Behavior1" name="***Service">
        <endpoint address="/Service1" binding="basicHttpBinding" bindingConfiguration="Binding1" contract="***Service1" />
        <endpoint address="/Service2" binding="basicHttpBinding" bindingConfiguration="Binding1" contract="***Service2"/>
        <endpoint address="/Service3" binding="basicHttpBinding" bindingConfiguration="Binding1" contract="***Service3"/>		  
        <host>
          <baseAddresses>
            <add baseAddress="https://... />            
          </baseAddresses>
        </host>
      </service>
    </services>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="True"/>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>
Et voici mon code côté afin d'appeler le service côté client :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Service.ServiceCardClient card = new Service.ServiceCardClient();
card.ClientCredentials.UserName.UserName = "user";
card.ClientCredentials.UserName.Password = "password";
 
card.GetCardInfos...
Je reçois l'erreur suivante :

La demande HTTP n'est pas autorisée avec un schéma d'authentification client 'Anonymous'. L'en-tête d'authentification reçu du serveur était 'Basic realm=\""
J'utilise VS 2010 et un serveur IIS 7. J'ai vraiment vraiment vraiment des problèmes à sécuriser ces web services, quelqu'un pourrait-il m'éclaircir un peu. Ce serait grandement apprécié !

Merci