Comment puis-je configurer wcf web api service pour le transport HTTPS? Est-ce que quelqu'un sait combien cela va changer dans la version finale, puisque c'est l'un des domaines qu'ils disent va changer?Sécurité de l'API Web WCF
Répondre
Pour prendre en charge HTTPS, vous devez activer la sécurité du transport sur HttpBinding. Cela peut être fait en dérivant du HttpConfigurableServiceHostFactory et passer outre la CreateServiceHost comme ceci:
public class HypertextTransferProtocolSecureServiceHostFactory : HttpConfigurableServiceHostFactory
{
protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
{
var configurationBuilder = HttpHostConfiguration.Create();
var host = new HttpConfigurableServiceHost(serviceType, configurationBuilder, baseAddresses);
foreach (var endpoint in host.Description.Endpoints.Where(e => e.ListenUri.Scheme == "https"))
{
var binding = endpoint.Binding as HttpBinding;
if (binding != null)
{
binding.Security.Mode = HttpBindingSecurityMode.Transport;
}
}
return host;
}
}
Enfin, le HypertextTransferProtocolSecureServiceHostFactory doit être ajouté à la RouteTable:
RouteTable.Routes.Add(new ServiceRoute("routePrefix", new HypertextTransferProtocolSecureServiceHostFactory(), typeof(ServiceType)));
Dans notre dernière goutte vous pouvez définir la liaison sans créer un nouvel hôte en utilisant l'objet HttpConfiguration. Il expose une méthode SetSecurity que vous pouvez définir pour changer le mode de sécurité.
Glenn est-il un exemple de ceci quelque part? J'ai du mal à reconfigurer un service d'API Web pour travailler sur https. –
Voici ma configuration de Global.asax, je vérifie l'URI et puis j'utilise le mode correct. Fonctionne bien dans IIS et IIS Express. . . . mon objectif est de base via HTTPS, IIS mais explicite conserve l'URI HTTP dans le « liant » et à moins que vous traitez avec elle vous obtenez sucer dans une boucle sans fin (http://screencast.com/t/kHvM49dl6tP, http://screencast.com/t/5usIEy5jgPdX)
var config = new HttpConfiguration
{
EnableTestClient = true,
IncludeExceptionDetail = true,
EnableHelpPage = true,
Security = (uri, binding) =>
{
if (uri.Scheme.Equals("https", StringComparison.InvariantCultureIgnoreCase))
binding.Mode = HttpBindingSecurityMode.Transport;
else
binding.Mode = HttpBindingSecurityMode.TransportCredentialOnly;
binding.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
},
CreateInstance = ((t, i, h) => container.Resolve(t))
};
- 1. Erreurs de sécurité WCF
- 2. Exception de sécurité WCF
- 3. Scénario de sécurité WCF
- 4. Configuration de sécurité WCF
- 5. Sécurité de transport WCF
- 6. Sécurité WCF - Sécurité d'origine des données
- 7. WCF wsHttpBinding Erreur de sécurité
- 8. ASP.NET à WCF - sécurité passthrough?
- 9. Sécurité de transport dans WCF
- 10. Echec de la sécurité WCF
- 11. Mode de sécurité WCF TransportWithMessageCredential
- 12. Sécurité WCF et NetTcpBinding
- 13. Sécurité WCF 4.0
- 14. Sécurité WCF - Autorisation du client
- 15. Comment modéliser un schéma de sécurité wcf
- 16. Configuration de la sécurité WCF (wsHttpBinding)
- 17. gestion de la sécurité dans wcf web api et wcf jquery support
- 18. Comment se connecter à LiveLink à l'aide de LAPI SingleSignOn
- 19. Problème de liaison de sécurité WCF
- 20. Problème de sécurité d'intégration Autofac Wcf
- 21. Tests de sécurité Web
- 22. problème de sécurité Web?
- 23. Sécurité du transport WCF && messags mode de sécurité question
- 24. Sécurité des messages personnalisés WCF
- 25. (401) Erreur non autorisée: sécurité/liaison WCF
- 26. fenêtres WCF erreur de sécurité d'authentification
- 27. Codage binaire + sécurité de transport (WCF)
- 28. WCF Problème de sécurité avec UserName clientCredentialType
- 29. Sécurité de transport SSL et WCF
- 30. Sécurité de transport WCF/MSMQ avec certificats
Merci beaucoup pour cette hskan: >} – Darth