Bonjour, le titre n'est peut-être pas clair, le problème est quand même assez simple à expliquer par contre.
Je fais des Web Services en asp .net qui sont appelés par un site web en java et nous voulons mettre de la sécurité entre les 2. La compagnie qui fait le site java m'a imposé de mettre du httpbinding avec un certificat SSL et une authentification username password. Ils m'ont maintenant demandé de pouvoir s'authentifier seulement quand ils utilisent les web services et non quand ils génèrent les classes avec le wsdl. Je voulais savoir si c'était possible de permettre à l'usager de voir le contrat wsdl sans s'authentifier mais ensuite de l'obliger à mettre ses credentials pour utiliser les fonctions ? Voici à quoi ressemble mon fichier web.config :
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
38
39
40
41
42
43
44
45
46 <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"/> <serviceCredentials> <serviceCertificate findValue="***" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" /> <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="CustomValidator.CustomUserNameValidator, App_Code"/> </serviceCredentials> </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>
Partager