我在本教程中有一个简单的应用程序:WCF 4 Getting Started Tutorial
如何实施某些加密?比如HTTPS(SSL?)。
教程中的示例代码。
static void Main(string[] args)
{
// Step 1 of the address configuration procedure: Create a URI to serve as the base address.
Uri baseAddress = new Uri("http://localhost:8000/ServiceModelSamples/Service");
// Step 2 of the hosting procedure: Create ServiceHost
ServiceHost selfHost = new ServiceHost(typeof(CalculatorService), baseAddress);
try
{
// Step 3 of the hosting procedure: Add a service endpoint.
selfHost.AddServiceEndpoint(
typeof(ICalculator),
new WSHttpBinding(),
"CalculatorService");
// Step 4 of the hosting procedure: Enable metadata exchange.
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
selfHost.Description.Behaviors.Add(smb);
// Step 5 of the hosting procedure: Start (and then stop) the service.
selfHost.Open();
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
// Close the ServiceHostBase to shutdown the service.
selfHost.Close();
}
catch (CommunicationException ce)
{
Console.WriteLine("An exception occurred: {0}", ce.Message);
selfHost.Abort();
}
}
答案 0 :(得分:4)
最简单的方法可能是使用传输安全性。见HTTP Transport Security。它描述了如何为自托管服务和IIS托管服务配置SSL。
如果你需要的只是加密,那就是它。如果您还需要客户端身份验证,则客户端应使用自己的服务必须接受的证书。
答案 1 :(得分:1)
如果您想在IIS7网站上安装https,可以试试这个:
然后使用http://fullyqnameofyourcomputer:81访问您的网站 如果要使用与安全站点的基本绑定来访问WCF服务,只需确保在客户端配置中添加安全模式(Not None)。