2012-07-01 4 views
1

Как преобразовать основную привязку wcf в пользовательскую привязку?Как преобразовать базовую привязку wcf в пользовательскую привязку?

 <basicHttpBinding> 
    <binding name="BasicHttpBinding_IAutenticacion" closeTimeout="00:01:00" 
     openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" 
     allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" 
     maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" 
     messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" 
     useDefaultWebProxy="true"> 
     <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" 
     maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
     <security mode="TransportWithMessageCredential"> 
     <transport clientCredentialType="None" proxyCredentialType="None" 
      realm="" /> 
     <message clientCredentialType="Certificate" algorithmSuite="Default" /> 
     </security> 
    </binding> 
    </basicHttpBinding> 

Спасибо заранее!

+0

какой пользовательский привязку? что это такое? –

ответ

2

Заканчивать онлайн ФОС связывающую преобразователь http://webservices20.blogspot.co.il/2009/08/bindingbox-convert-wcf-bindings.html

EDIT: когда вы используете this service помните, зайца тег перед (как в образце по умолчанию там). Тогда результат будет:

<!-- generated via Yaron Naveh's http://webservices20.blogspot.com/ --> 

<customBinding> 
    <binding name="NewBinding0"> 
    <security authenticationMode="CertificateOverTransport" messageSecurityVersion="WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10" requireDerivedKeys="false" securityHeaderLayout="Lax" /> 
    <textMessageEncoding MessageVersion="Soap11" /> 
    <httpsTransport /> 
    </binding> 
</customBinding> 

<!-- generated via Yaron Naveh's http://webservices20.blogspot.com/ --> 

EDIT: это, как вы создаете это связывание с кодом:

 var b = new CustomBinding(); 
     var s = SecurityBindingElement.CreateCertificateOverTransportBindingElement(
      MessageSecurityVersion.WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10); 
     s.SetKeyDerivation(false); 
     s.SecurityHeaderLayout = SecurityHeaderLayout.Lax; 

     b.Elements.Add(s); 
     b.Elements.Add(new TextMessageEncodingBindingElement() { MessageVersion = MessageVersion.Soap11}); 
     b.Elements.Add(new HttpsTransportBindingElement()); 

при создании своего клиента вы можете установить сертификаты, как это:

c.ClientCredentials.ClientCertificate.Certificate 
+0

Эй, спасибо, но я сделал это раньше, и служба возвращает «Плохой запрос» = ( – user1494757

+0

см. Мое редактирование jus now –

+0

Хорошо, теперь я генерирую правильный запрос, но мне нужно сделать то же самое программно, потому что У меня нет закрытого ключа, закрытый ключ хранится в HSM-устройстве, поэтому, чтобы иметь возможность потреблять услугу, мне нужно то же самое программно ... Я узнаю какой-то код на C# из msdn, но код тоже сложный для меня .. образцы из msdn "WF_WCF_Samples" имеют некоторые проекты для создания пользовательских токенов, но я вообще не понимаю ... Я не знаю, что делать ... :( – user1494757

Смежные вопросы