ÚVOD
Windows Communication Foundation (WCF) nemá funkce odesílat zabezpečené zprávy a pak přijímat nezabezpečenou odpovědi a odesílat nezabezpečenou zprávy a přijímat zabezpečené odpovědi. Opravu hotfix popsanou v tomto článku přidá nový atribut enableUnsecuredResponse . Výchozí atribut enableUnsecuredResponse hodnotu false. Pokud nastavíte hodnotu tohoto atributu na hodnotu true, jsou povoleny následující nové funkce v WCF:
-
WCF klienti mohou přijímat nezabezpečenou odpovědi i v případě, že odchozí zprávy jsou zabezpečeny pomocí protokolu Secure Socket Layer (SSL) k podepsání zprávy.
-
WCF služby mohou odesílat nezabezpečenou odpovědi, které mají žádné zabezpečení záhlaví obálky SOAP i v případě, že požadavek je zabezpečen.
Poznámka: Atribut enableUnsecuredResponse platí pouze pouze pro typ CustomBinding .
Řešení
Používáte-li rozhraní.NET Framework 3.0, nainstalujte opravu hotfix popsanou v následujícím článku znalostní bázi Microsoft Knowledge:
967105 oprava: oprava hotfix, která umožňuje WCF odesílat zabezpečené zprávy a přijímat nezabezpečenou odpovědi a odesílat nezabezpečenou zprávy a přijímat zabezpečené odpovědi, je k dispozici rozhraní.NET Framework 3.0Pokud používáte rozhraní.NET Framework 3.5 Service Pack 1 v systému Windows 7 nebo Windows Server 2008 R2, nainstalujte opravu hotfix popsanou v následujícím článku znalostní bázi Microsoft Knowledge:
977420 kumulativní oprava hotfix je k dispozici a opravuje problémy v systému Windows Communication Foundation rozhraní.NET Framework 3.5 SP1 pro systém Windows 7 a Windows Server 2008 R2 Pokud používáte rozhraní.NET Framework 3.5 Service Pack 1 v jiných operačních systémech, nainstalujte následující opravu hotfix problém vyřešit. Podporovaná oprava hotfix je nyní k dispozici od společnosti Microsoft. Je však určena opravit pouze problém popsaný v tomto článku. Použijte ji pouze u systémů, ve kterých dochází k tomuto konkrétnímu problému. Tato oprava hotfix může být dále testována. Proto pokud jste závažně tento problém, doporučujeme počkat další aktualizaci service pack, která obsahuje tuto opravu hotfix. Chcete-li tento problém vyřešit okamžitě, obraťte se na technickou podporu společnosti Microsoft získat opravu hotfix. Úplný seznam telefonních čísel služeb podpory zákazníků společnosti Microsoft a informace o cenách podpory naleznete na následujícím webu společnosti Microsoft:
http://support.microsoft.com/contactus/?ws=supportPoznámka: Ve zvláštních případech mohou být stornovány poplatky, které jsou třeba obvykle zaplatit za telefonní hovory, pokud pracovník služeb podpory společnosti Microsoft určí, že konkrétní aktualizace odstraní váš problém. Výdaje na technickou podporu použije dalších otázek a problémů, které nelze vyřešit konkrétní aktualizací.
Předpoklady
Chcete-li nainstalovat tuto opravu hotfix, musíte mít rozhraní.NET Framework 3.5 Service Pack 1.
Požadavek na restartování
Nemáte k restartování počítače po instalaci této opravy hotfix Pokud žádná instance rozhraní.NET Framework je používán.
Informace o nahrazení opravy hotfix
Tato oprava hotfix nenahrazuje žádné další opravy hotfix.
Informace o souborech
Anglická verze této opravy hotfix má atributy (nebo pozdější atributy souborů) uvedené v následující tabulce. Kalendářní data a časy jednotlivých souborů jsou uvedeny v koordinovaném světovém čase (UTC). Při zobrazení informací o souboru je převeden na místní čas. Rozdíl mezi místním časem a časem UTC naleznete na kartě Časové pásmo v položce Datum a čas v okně Ovládací panely.
Informace o souborech pro všechny verze x86 systému Windows Server 2003 a Windows XP
Název souboru |
Verze souboru |
Velikost souboru |
Datum |
Čas |
Platforma |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4119 |
17,240 |
01. června 2009 |
22:56 |
x86 |
System.runtime.serialization.dll |
3.0.4506.4119 |
970,752 |
01. června 2009 |
22:56 |
x86 |
System.servicemodel.dll |
3.0.4506.4119 |
5,931,008 |
01. června 2009 |
22:56 |
x86 |
Informace o souborech pro všechny verze x64 systému Windows Server 2003 a Windows XP
Název souboru |
Verze souboru |
Velikost souboru |
Datum |
Čas |
Platforma |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4119 |
19,304 |
01. června 2009 |
22:28 |
x64 |
System.runtime.serialization.dll |
3.0.4506.4119 |
847,872 |
01. června 2009 |
22:28 |
x64 |
System.servicemodel.dll |
3.0.4506.4119 |
5,267,456 |
01. června 2009 |
22:28 |
x64 |
Informace o souborech pro všechny verze x86 systémem Windows Vista SP2 a Windows Server 2008 SP2
Název souboru |
Verze souboru |
Velikost souboru |
Datum |
Č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 |
Informace o souborech pro všechny verze x64 systémem Windows Vista SP2 a Windows Server 2008 SP2
Název souboru |
Verze souboru |
Velikost souboru |
Datum |
Č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 |
Informace o souborech pro všechny verze s procesorem Itanium systému Windows Server 2008 SP2
Název souboru |
Verze souboru |
Velikost souboru |
Datum |
Č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
Společnost Microsoft potvrdila, že se jedná o problém v produktech společnosti Microsoft, které jsou uvedeny v části "Platí pro".
Další informace
Následující příklad kódu lze použijte k testování atribut enableUnsecuredResponse :
SlužbyBindingElementCollection 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(); }