Как я могу использовать шифрование SSL в WCF - PullRequest
4 голосов
/ 17 мая 2011

У меня есть простое приложение из этого урока: Учебное пособие по началу работы с WCF 4

Как мне реализовать шифрование? Что-то вроде 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();
        }

    }

Ответы [ 2 ]

4 голосов
/ 17 мая 2011

Самый простой способ - использовать безопасность на транспорте. См. HTTP Transport Security . В нем описано, как настроить SSL для служб как собственного, так и IIS.

Если все, что вам нужно, это шифрование, то это все. Если вы также хотите аутентификацию клиента, то клиент должен использовать свой собственный сертификат, который служба должна принять.

1 голос
/ 17 мая 2011

Если вы хотите иметь https на своем веб-сайте IIS7, вы можете попробовать это:

  1. Измените значение включенного протокола «https» на дополнительные настройки веб-сайта.
  2. Добавьте привязки https номер порта, например: localhost: 81
  3. Добавьте настройки SSL на свой веб-сайт.

Затем зайдите на свой сайт, используя http://fullyqnameofyourcomputer:81 Если вы хотите получитьСлужба WCF с базовым связыванием с защищенным сайтом, просто убедитесь, что вы добавили режим секретности (не None) в конфигурацию клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...