Включить SSL для моей службы WCF

37
задан Blankman 8 January 2009 в 21:14
поделиться

2 ответа

Эта страница на MSDN объясняет WCF Обязательная безопасность.

http://msdn.microsoft.com/en-us/library/ms729700.aspx

класс BasicHttpBinding, прежде всего, используется для взаимодействия с существующими веб-сервисами, и многие из тех сервисов размещаются Internet Information Services (IIS). Следовательно, транспортная безопасность для этой привязки разработана для бесшовного взаимодействия с сайтами IIS. Это сделано путем установки режима безопасности для Переноса и затем установки клиентского учетного типа. Учетные значения типа соответствуют механизмам безопасности каталога IIS. Следующий код показывает устанавливаемый режим и учетный набор типа на Windows. Можно использовать эту конфигурацию, когда оба клиента и сервера находятся на том же домене Windows.

C#

BasicHttpBinding b = new BasicHttpBinding();
b.Security.Mode = BasicHttpSecurityMode.Transport ;
b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;

Или, в конфигурации:

<bindings>   
   <basicHttpBinding>
            <binding name="SecurityByTransport">
               <security mode="Transport">
                 <transport clientCredentialType="Windows" />
                </security>
            </binding>   
   </basicHttpBinding> 
</bindings>

Для включения ssl, без входа в систему, устанавливают clientCredentialType ни на "Один".

Опции для режима безопасности:

Ни один, Транспорт, сообщение, TransportWithMessageCredential и TransportCredentialOnly

можно найти больше деталей в: http://msdn.microsoft.com/en-us/library/system.servicemodel.basichttpsecuritymode.aspx

44
ответ дан Stever B 8 January 2009 в 21:14
поделиться
  • 1
    +1 С дополнительной информацией: const unique_ptr делает более сильный оператор тем владением won' t передача из объема, чем делает boost::scoped_ptr. Последний может подкачать из объема, тогда как первый не может. – Howard Hinnant 1 December 2011 в 01:32

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

это копия кодовой базы, над которой я работаю, которую я сделал в коде, и, похоже, она работает. Я получаю WSDL по крайней мере, когда обращаюсь к сервису, если это вообще помогает :)

BasicHttpBinding basicBinding = new BasicHttpBinding();
if (RegistryConnectionStringFactory.UseSslForCommunications)
{
     basicBinding.Security.Mode = BasicHttpSecurityMode.TransportWithMessageCredential;
     basicBinding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;
}
else
{
     basicBinding.Security.Mode = BasicHttpSecurityMode.None;
     basicBinding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;
}
0
ответ дан 27 November 2019 в 04:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: