The following code will enforce your WCF Services to use HTTPS:
using System;
using System.ServiceModel;
using System.ServiceModel.Description;
namespace TestHttpsRequiredServiceBehavior
{
public class RequireHttpsServiceBehavior : Attribute, IServiceBehavior
{
public void AddBindingParameters(ServiceDescription serviceDescription, System.ServiceModel.ServiceHostBase serviceHostBase, System.Collections.ObjectModel.Collection endpoints, System.ServiceModel.Channels.BindingParameterCollection bindingParameters)
{
}
public void ApplyDispatchBehavior(ServiceDescription serviceDescription, System.ServiceModel.ServiceHostBase serviceHostBase)
{
}
public void Validate(ServiceDescription serviceDescription, System.ServiceModel.ServiceHostBase serviceHostBase)
{
foreach (var se in serviceDescription.Endpoints)
{
if (string.Compare(se.Binding.Scheme, "https", true) != 0)
throw new FaultException("This service requires HTTPS!");
}
}
}
}
The WCF services you can create can then apply this WCF ServiceBehavior using an attribute on the WCF Service implementation class:
[RequireHttpsServiceBehavior]
public class Service1 : IService1
{
public string GetData(int value)
{
..
Of course, you have to enable HTTPS also on your machine and set up your Visual Studio solution consuming the WCF service to use HTTPS.
DreamHost is the best website hosting provider with plans for any hosting requirements.
ReplyDelete