ÚVOD
Windows Communication Foundation (WCF) nemá funkciu odosielať zabezpečené a potom zobrazí nezabezpečené odpovede alebo nezabezpečené odosielať a prijímať zabezpečené odpovede. Rýchla oprava popísaná v tomto článku pridáva nový atribút enableUnsecuredResponse . Predvolená hodnota pre atribút enableUnsecuredResponse je nesprávne. Ak nastavíte hodnotu tohto atribútu splnené, tieto funkcie sú povolené v WCF:
-
WCF klientov môžete prijímať nezabezpečené odpovede aj v prípade, že odchádzajúce správy sú zabezpečené protokolom Secure Socket Layer (SSL) na prihlásenie do tela správy.
-
Služby WCF môže odoslať nezabezpečené odpovede, ktoré sa žiadne hlavičky zabezpečenia v SOAP aj v prípade, že je zabezpečené požiadavky.
Poznámka: Atribút enableUnsecuredResponse platí iba na typ CustomBinding .
Riešenie
Pri používaní rozhrania .NET Framework 3.0, nainštalujte rýchlu opravu popísanú v nasledujúcom článku databázy Microsoft Knowledge na základe:
967105 FIX: rýchla oprava, ktorá umožňuje WCF zabezpečené odosielať a prijímať nezabezpečené odpovede a nezabezpečené odosielať a prijímať zabezpečené odpovede, je k dispozícii pre rozhranie .NET Framework 3.0Ak používate rozhranie .NET Framework 3.5 Service Pack 1 v systéme Windows 7 alebo Windows Server 2008 R2, nainštalujte rýchlu opravu popísanú v nasledujúcom článku databázy Microsoft Knowledge na základe:
977420 hotfix rollup je k dispozícii v Windows komunikácie Foundation v .NET Framework 3.5 SP1 pre Windows 7 a Windows Server 2008 R2 opraviť problémy
Ak používate rozhranie .NET Framework 3.5 Service Pack 1 v iných operačných systémoch, nainštalujte nasledujúcu rýchlu opravu na vyriešenie problému.
Rýchla oprava je k dispozícii od spoločnosti Microsoft. Je však určená iba na vyriešenie problému, ktorý je popísaný v tomto článku. Použite ju iba v počítačoch s týmto konkrétnym problémom. Táto rýchla oprava môže bude ďalej testovaná. Ak vám nespôsobuje tento problém, odporúčame vám počkať na ďalší balík service pack, ktorá obsahuje túto rýchlu opravu.
Ak chcete tento problém vyriešiť okamžite, obráťte sa na služby technickej podpory spoločnosti Microsoft a požiadajte o rýchlu opravu. Úplný zoznam telefónnych čísiel služby podpory zákazníkov spoločnosti Microsoft a informácie o poplatkoch za poskytnutie technickej podpory nájdete na webovej lokalite spoločnosti Microsoft:
http://support.microsoft.com/contactus/?ws=supportPoznámka: V niektorých zvláštnych prípadoch sa môžu zrušiť poplatky za telefonickú podporu, ak pracovník služieb technickej podpory spoločnosti Microsoft usúdi, že daný problém sa vyrieši nainštalovaním určitej aktualizácie. Ďalšie otázky a žiadosti o technickú podporu, ktoré sa netýkajú tejto špecifickej aktualizácie, podliehajú bežným sadzbám za poskytovanie technickej podpory.
Požiadavky
Ak chcete použiť túto rýchlu opravu, musíte mať .NET Framework 3.5 Service Pack 1.
Požiadavka na reštartovanie
Nemáte na reštartovanie počítača po použití tejto rýchlej opravy, ak používa žiadne inštancie programu .NET Framework.
Informácie o nahradení rýchlej opravy
Táto rýchla oprava nenahrádza žiadne iné rýchle opravy.
Informácie o súboroch
Anglická verzia tejto rýchlej opravy má atribúty súborov (alebo novšie atribúty) uvedené v nasledujúcej tabuľke. Dátumy a čas jednotlivých súborov sú uvedené vo formáte koordinovaného svetového času (UTC). Pri zobrazení informácií o súbore sa dátumy a čas prevedú na miestny čas. Ak chcete vyhľadať rozdiely medzi časom UTC a miestnym časom, použite kartu Časové pásmo v položke Dátum a čas v ovládacom paneli.
Informácie o súboroch pre všetky x86-bitové verzie systému Windows Server 2003 a Windows XP
Názov súboru |
Verzia súboru |
Veľkosť súboru |
Dátum |
Čas |
Platforma |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4119 |
17,240 |
01-Jun-2009 |
22:56 |
x86 |
System.runtime.serialization.dll |
3.0.4506.4119 |
970,752 |
01-Jun-2009 |
22:56 |
x86 |
System.servicemodel.dll |
3.0.4506.4119 |
5,931,008 |
01-Jun-2009 |
22:56 |
x86 |
Informácie o súboroch pre všetky x64-bitových verziách systému Windows Server 2003 a Windows XP
Názov súboru |
Verzia súboru |
Veľkosť súboru |
Dátum |
Čas |
Platforma |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4119 |
19,304 |
01-Jun-2009 |
22:28 |
x64 |
System.runtime.serialization.dll |
3.0.4506.4119 |
847,872 |
01-Jun-2009 |
22:28 |
x64 |
System.servicemodel.dll |
3.0.4506.4119 |
5,267,456 |
01-Jun-2009 |
22:28 |
x64 |
Informácie o súboroch pre všetky x86-bitové verzie systému Windows Vista SP2 a Windows Server 2008 SP2
Názov súboru |
Verzia súboru |
Veľkosť súboru |
Dátum |
Čas |
---|---|---|---|---|
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 |
Informácie o súboroch pre všetky x64-bitových verziách systému Windows Vista SP2 a Windows Server 2008 SP2
Názov súboru |
Verzia súboru |
Veľkosť súboru |
Dátum |
Čas |
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 |
Informácie o súboroch pre všetky verzie s procesorom Itanium systému Windows Server 2008 SP2
Názov súboru |
Verzia súboru |
Veľkosť súboru |
Dátum |
Čas |
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 |
Stav
Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.
Ďalšie informácie
Použite nasledujúci príklad kód test enableUnsecuredResponse atribút:
Služba
BindingElementCollection 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();
Klient
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();
}