Эта страница на 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
Я думаю, что если в ваших "привязках", где у вас есть
, если вы измените это должно быть
, все будет в порядке.
это копия кодовой базы, над которой я работаю, которую я сделал в коде, и, похоже, она работает. Я получаю 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;
}
const unique_ptr
делает более сильный оператор тем владением won' t передача из объема, чем делаетboost::scoped_ptr
. Последний может подкачать из объема, тогда как первый не может. – Howard Hinnant 1 December 2011 в 01:32