ĮVADAS
Windows ryšio platformos (WCF) nėra funkcijos siųsti saugų pranešimus ir tada gauti neapsaugotą atsakymus, arba į neapsaugotą siųsti ir gauti saugų atsakymus. Karštąsias pataisas, aprašytas šiame straipsnyje prideda naują enableUnsecuredResponse atributą. Atributą enableUnsecuredResponse numatytoji vertė yra klaidinga. Jei šis atributas reikšmė True, WCF būtų įjungtas šios naujos funkcijos:
-
WCF klientams priimti neapsaugotą atsakymų net jei siunčiamų pranešimų yra apsaugotas naudojant saugiųjų jungčių lygmens (SSL) protokolas pasirašyti pranešimo tekstas.
-
WCF tarnybos gali siųsti neapsaugotą atsakymų, kurių nėra saugos antraštės SOAP paketus, net jei užklausa yra saugus.
Pastaba. EnableUnsecuredResponse atributas tik taikomas tik CustomBinding tipo.
Sprendimas
Jei naudojate .NET Framework 3.0, įdiekite karštąsias pataisas, aprašytas šiame straipsnyje "Microsoft" žinių:
967105 FIX: karštosios pataisos, kurios leidžia WCF saugų pranešimų siuntimo ir gavimo neužtikrintas atsakymų ir neapsaugotą siųsti ir gauti saugų atsakymus, skirtas .NET Framework 3.0Jei naudojate į .NET Framework 3.5 1 pakeitimų paketą "Windows 7" arba "Windows Server 2008 R2", įdiekite karštąsias pataisas, aprašytas šį straipsnį Microsoft žinių:
977420 karštųjų pataisų paketas yra prieinamas problemas Windows ryšio platforma .NET Framework 3.5 SP1, Windows 7 ir "Windows Server 2008 R2" Jei naudojate į .NET Framework 3.5 1 pakeitimų paketo operacinės sistemos, įdiegti šias karštąsias pataisas išspręsti problemą. Palaikomą naujausią pataisą dabar yra Microsoft. Tačiau ji skirta spręsti tik šiame straipsnyje aprašytai problemai spręsti. Taikyti ją tik sistemoms, kuriose kyla ši konkreti problema. Šios karštosios pataisos gali būti papildomai išbandoma. Todėl, jei jums nelabai trukdo Ši problema, rekomenduojame palaukti kito pakeitimų paketo, kuriame bus šios karštosios pataisos. Nedelsdami išspręsti šią problemą, susisiekite su Microsoft klientų palaikymo tarnybą ir įsigykite šias karštąsias pataisas. "Microsoft" klientų palaikymo tarnybos telefonų sąrašo ir informacijos apie palaikymo kainas sąrašą, apsilankykite šioje "Microsoft" svetainėje:
http://support.microsoft.com/contactus/?ws=supportPastaba. Konkrečiais atvejais už palaikymo skambučius taikomi įprasti mokesčiai gali būti atšaukti, jei "Microsoft" techninės pagalbos specialistas nusprendžia, kad jūsų problemą galima išspręsti naudojant konkretų naujinimą. Į įprastos kainos už palaikymą taikomos papildomiems palaikymo klausimams ir problemoms, kurių negalima išspręsti naudojant minėtą naujinimą.
Būtinosios sąlygos
Norint taikyti šias karštąsias pataisas, turi būti toliau .NET Framework 3.5 1 pakeitimų paketo.
Reikalavimas paleisti iš naujo
Turite iš naujo paleisti kompiuterį, kai pritaikote šias karštąsias pataisas, jei nėra egzempliorius .NET Framework yra naudojami.
Karštųjų pataisų pakeitimo informacija
Šios karštosios pataisos nepakeičia jokių kitų karštųjų pataisų.
Failo informacija
Šių karštųjų pataisų anglų k. versijos failo atributai (failo atributai) yra išvardyti toliau pateiktoje lentelėje. Datos ir laiko informacija pateikta pagal universalųjį laiką (UTC). Kai peržiūrite failo informaciją, ši informacija konvertuojama į vietos laiką. Norėdami sužinoti UTC ir vietos laiko skirtumą, naudokite valdymo skydo elemento Data ir laikas skirtuką Laiko juosta.
Failo informacija, skirta visos x86 pagrindo versijos Windows Server 2003 "ir" Windows XP
Failo vardas |
Failo versija |
Failo dydis |
Data |
Laikas |
Platforma |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4119 |
17,240 |
01-birželis 2009 |
22:56 |
x86 |
System.runtime.serialization.dll |
3.0.4506.4119 |
970,752 |
01-birželis 2009 |
22:56 |
x86 |
System.servicemodel.dll |
3.0.4506.4119 |
5,931,008 |
01-birželis 2009 |
22:56 |
x86 |
Failo informacija, skirta visos x64 versijoms Windows Server 2003 "ir" Windows XP
Failo vardas |
Failo versija |
Failo dydis |
Data |
Laikas |
Platforma |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4119 |
19,304 |
01-birželis 2009 |
22:28 |
x64 |
System.runtime.serialization.dll |
3.0.4506.4119 |
847,872 |
01-birželis 2009 |
22:28 |
x64 |
System.servicemodel.dll |
3.0.4506.4119 |
5,267,456 |
01-birželis 2009 |
22:28 |
x64 |
Failo informacija, skirta visos x86 pagrindo versijos "Windows Vista" SP2 ir "Windows Server 2008" SP2
Failo vardas |
Failo versija |
Failo dydis |
Data |
Laikas |
---|---|---|---|---|
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 |
Failo informacija, skirta visos x64 pagrindo versijos "Windows Vista" SP2 ir "Windows Server 2008" SP2
Failo vardas |
Failo versija |
Failo dydis |
Data |
Laikas |
Platforma |
---|---|---|---|---|---|
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 |
Failo informacija, skirta visos "Itanium" pagrindo versijos "Windows Server 2008" SP2
Failo vardas |
Failo versija |
Failo dydis |
Data |
Laikas |
Platforma |
---|---|---|---|---|---|
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 |
Būsena
„Microsoft“ patvirtino, kad tai yra „Microsoft“ produktų, išvardytų skyriuje „Taikoma“, problema.
Daugiau informacijos
Naudokite šį kodą pavyzdys išbandyti enableUnsecuredResponse atributą:
TarnybaBindingElementCollection 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();
Klientas
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(); }