INTRODUCERE
Windows Communication Foundation (WCF) nu are funcționalitate pentru a trimite mesaje securizate și apoi primiți răspunsuri nesecurizată, sau pentru a trimite mesaje nesecurizată și a primi răspunsuri securizate. Remedierea rapidă descrisă în acest articol adaugă o nouă enableUnsecuredResponse atribut. Atributul enableUnsecuredResponse valoarea implicită este false. Dacă setați valoarea acest atribut la true, sunt activate următoarele caracteristici noi în WCF:
-
Clienții WCF poate accepta nesecurizată răspunsuri, chiar dacă mesajele trimise sunt securizate prin protocolul Secure Socket Layer (SSL) pentru a face sign corpul mesajului.
-
Servicii WCF poate trimite răspunsurile nesecurizată care au nici un antet de securitate în plicuri SOAP, chiar dacă solicitarea este sigur.
Notă Atributul enableUnsecuredResponse numai se aplică numai pentru tipul de CustomBinding .
Rezolvare
Dacă utilizați .NET Framework 3.0, instalați remedierea rapidă descrisă în următorul articol din baza de cunoștințe Microsoft:
REMEDIERE 967105 : O remediere rapidă care permite WCF pentru a trimite mesaje securizate și a primi unsecured răspunsuri și să trimiteți mesaje nesecurizată și să primiți răspunsuri securizate, este disponibilă pentru .NET Framework 3.0Dacă utilizați .NET Framework 3.5 Service Pack 1 în Windows 7 sau Windows Server 2008 R2, instalați remedierea rapidă descrisă în următorul articol din baza de cunoștințe Microsoft:
977420 un pachet de remediere rapidă este disponibilă pentru remedierea problemelor în Windows Communication Foundation în .NET Framework 3.5 SP1 pentru Windows 7 și Windows Server 2008 R2 Dacă utilizați .NET Framework 3.5 Service Pack 1 pe alte sisteme de operare, instalați următoarea remediere rapidă pentru a rezolva problema. Un hotfix acceptat este acum disponibil de la Microsoft. Cu toate acestea, aceasta este scopul de a corecta numai problema descrisă în acest articol. Aplicați-o numai pe sistemele care întâmpină această problemă anume. Această remediere rapidă poate să necesite testare suplimentară. De aceea, dacă nu sunteți grav afectat de această problemă, vă recomandăm să așteptați următorul pachet service pack care conține această remediere rapidă. Pentru a rezolva imediat problema, contactaţi serviciile de asistență clienți Microsoft pentru a obţine remedierea rapidă. Pentru o listă completă a numerelor de telefon ale serviciilor de asistență pentru clienți Microsoft și informații despre costurile de asistență, vizitați următorul site Web Microsoft:
http://support.microsoft.com/contactus/?ws=supportNotă În cazuri speciale, costurile implicate de obicei pentru apelurile de suport pot fi anulate dacă un specialist în asistență Microsoft stabilește că o anumită actualizare va rezolva problema. Se vor aplica costurile uzuale de asistenţă pentru întrebări suplimentare de asistenţă şi pentru probleme ce nu fac obiectul actualizării în cauză.
Cerințe preliminare
Pentru a aplica această remediere rapidă, trebuie să aveți .NET Framework 3.5 Service Pack 1.
Cerinţă de repornire
Nu trebuie să reporniți computerul după aplicarea acestei remedieri rapide, dacă se utilizează nici o instanță de .NET Framework.
Informații despre înlocuirea remedierilor rapide
Această remediere rapidă nu înlocuiește nicio altă remediere rapidă.
Informații despre fișier
Versiunea în limba engleză a acestei remedieri rapide are atributele de fişier (sau atribute de fişier mai recente) enumerate în următorul tabel. Datele şi orele acestor fişiere sunt exprimate în listă în ora universală (UTC). Când vizualizaţi informaţiile despre fișier, acesta este convertit la ora locală. Pentru a găsi diferenţa dintre UTC şi ora locală, utilizaţi fila Fusul orar în elementul de Data şi ora în Panoul de Control.
Informații despre fișier pentru toate versiunile x86 de Windows Server 2003 și Windows XP
Nume de fișier |
Versiune fișier |
Dimensiune fișier |
Data |
Ora |
Platformă |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4119 |
17,240 |
01-Iun-2009 |
22:56 |
x86 |
System.runtime.serialization.dll |
3.0.4506.4119 |
970,752 |
01-Iun-2009 |
22:56 |
x86 |
System.servicemodel.dll |
3.0.4506.4119 |
5,931,008 |
01-Iun-2009 |
22:56 |
x86 |
Informații despre fișier pentru toate versiunile x64 de Windows Server 2003 și Windows XP
Nume de fișier |
Versiune fișier |
Dimensiune fișier |
Data |
Ora |
Platformă |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4119 |
19,304 |
01-Iun-2009 |
22:28 |
x64 |
System.runtime.serialization.dll |
3.0.4506.4119 |
847,872 |
01-Iun-2009 |
22:28 |
x64 |
System.servicemodel.dll |
3.0.4506.4119 |
5,267,456 |
01-Iun-2009 |
22:28 |
x64 |
Informații despre fișier pentru toate versiunile x86 de Windows Vista SP2 şi Windows Server 2008 SP2
Nume de fișier |
Versiune fișier |
Dimensiune fișier |
Data |
Ora |
---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4120 |
17,240 |
10-Jun-2009 |
06:55 |
System.runtime.serialization.dll |
3.0.4506.4120 |
970,752 |
10-Jun-2009 |
06:55 |
System.servicemodel.dll |
3.0.4506.4120 |
5,935,104 |
10-Jun-2009 |
06:55 |
Informații despre fișier pentru toate versiunile x64 de Windows Vista SP2 şi Windows Server 2008 SP2
Nume de fișier |
Versiune fișier |
Dimensiune fișier |
Data |
Ora |
Platformă |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4120 |
19,288 |
10-Jun-2009 |
06:56 |
x64 |
System.runtime.serialization.dll |
3.0.4506.4120 |
847,872 |
10-Jun-2009 |
06:56 |
x64 |
System.servicemodel.dll |
3.0.4506.4120 |
5,271,552 |
10-Jun-2009 |
06:56 |
x64 |
Informații despre fișier pentru toate versiunile Itanium de Windows Server 2008 SP2
Nume de fișier |
Versiune fișier |
Dimensiune fișier |
Data |
Ora |
Platformă |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4120 |
33,640 |
10-Jun-2009 |
06:56 |
IA-64 |
System.runtime.serialization.dll |
3.0.4506.4120 |
847,872 |
10-Jun-2009 |
06:56 |
IA-64 |
System.servicemodel.dll |
3.0.4506.4120 |
5,271,552 |
10-Jun-2009 |
06:56 |
IA-64 |
Stare
Microsoft a confirmat că aceasta este o problemă cu produsele Microsoft enumerate în secţiunea „Se aplică la".
Mai multe informații
Utilizați următorul exemplu de cod pentru a testa atributul enableUnsecuredResponse :
ServiceBindingElementCollection serviceBec = new BindingElementCollection();SecurityBindingElement serviceSbe = SecurityBindingElement.CreateUserNameForCertificateBindingElement();
serviceSbe.EnableUnsecuredResponse = true; serviceBec.Add(serviceSbe); serviceBec.Add(new TextMessageEncodingBindingElement()); serviceBec.Add(new HttpTransportBindingElement()); Binding serviceBinding = new CustomBinding(serviceBec); ServiceHost serviceHost = new ServiceHost(typeof(RequestReply)); … serviceHost.Open();
Client
BindingElementCollection clientBec = new BindingElementCollection();SecurityBindingElement clientSbe = SecurityBindingElement.CreateUserNameForCertificateBindingElement();
clientSbe.EnableUnsecuredResponse = true; clientBec.Add(clientSbe); clientBec.Add(new TextMessageEncodingBindingElement()); clientBec.Add(new HttpTransportBindingElement()); Binding clientBinding = new CustomBinding(clientBec); IRequestReply channel = cf.CreateChannel(); try { channel.SendString("Hello"); cf.Close(); }