ВСТУП

Windows Communication Foundation (WCF) не має функції надсилати повідомлення, захищене і потім, отримують незахищене відповіді, або для надіслати незахищене повідомлення й отримувати відповіді в неправильному. Виправлення, описане в цій статті, додає атрибут enableUnsecuredResponse . За промовчанням значення атрибута enableUnsecuredResponse невірна. Якщо встановити значення цей атрибут значення true, у WCF ввімкнено такі нові функції:

  • WCF клієнти можуть надходити незахищене відповіді, навіть якщо, забезпечених вихідних повідомлень за допомогою протоколу Secure Socket Layer (SSL) для входу в тілі повідомлення.

  • Служби WCF, можна надіслати незахищене відповідей, що мають без безпеки-заголовка SOAP Конверти навіть, якщо запит безпечне.

Примітка. Атрибут enableUnsecuredResponse , лише, застосовується лише до CustomBinding типу.

Вирішення

Якщо використовується .NET Framework 3.0, інсталюйте виправлення, яке описано у статті бази знань для Microsoft на основі:

ВИПРАВЛЕННЯ в 967105 : виправлення, яке дозволяє WCF, надіслати повідомлення, захищене та отримати небезпечними, відповіді та надіслати незахищене повідомлення й отримувати відповіді в неправильному, доступний для .NET Framework 3.0Якщо ви використовуєте .NET Framework 3.5 із пакетом оновлень 1 для Windows 7 або Windows Server 2008 R2, інсталюйте виправлення, яке описано у статті бази знань для Microsoft на основі:

977420 зведення виправлень доступне виправлення неполадок у Windows Communication Foundation в .NET Framework 3.5 SP1 для ОС Windows 7 і Windows Server 2008 R2
Якщо ви використовуєте .NET Framework 3.5 із пакетом оновлень 1 в інших операційних системах, інсталюйте таке виправлення для вирішення проблеми.

Корпорація Майкрософт випустила підтримуване виправлення доступна. Проте призначена для вирішення проблеми, описаної в цій статті. Він придатний лише для систем, які зазнають цієї конкретної проблеми. Те, що це виправлення може потребувати додаткового тестування. Таким чином, якщо ви не завдає значної, ми рекомендуємо почекати до виходу чергового пакета оновлень, що містить це виправлення.

Щоб негайно вирішити цю проблему, зверніться до служби підтримки Microsoft, щоб отримати виправлення. Повний перелік телефонів служби підтримки користувачів корпорації Майкрософт а також відомості про вартість обслуговування відвідайте веб-сайт корпорації Майкрософт:

http://support.microsoft.com/contactus/?ws=supportПримітка. В окремих випадках оплату звернення до служби підтримки може бути скасовано якщо технічної підтримки Майкрософт визначить, що телефонів служби. Плата стягується на додаткові питання і проблеми, які не пов'язані з оновленням.

Попередні вимоги

Щоб застосувати це виправлення, потрібно мати .NET Framework 3.5 із пакетом оновлень 1.

Необхідність перезавантаження

Перезавантажте комп'ютер, після застосування цього виправлення, якщо використовується не екземпляр .NET Framework не потрібно.

Відомості про заміну виправлень

Це виправлення не замінює жодних інших виправлень.

Відомості про файли

Англійська версія цього виправлення на комп'ютері має атрибути файлів (або новіші атрибути файлів), подані в нижченаведеній таблиці. Значення дати й часу для цих файлів наведено за всесвітнім координованим часом (UTC). Переглядаючи відомості про файл, час конвертується у місцевий час. Щоб визначити різницю між UTC і місцевим часом, використайте вкладку Часовий пояс у Дата й час на панелі керування.

Відомості про файли для всіх процесорів x86 ОС Windows Server 2003 та Windows XP

Ім'я файлу

Версія файлу

Розмір файлу

Дата

Час

Платформа

Servicemonikersupport.dll

3.0.4506.4119

17,240

01 червня 2009 року.

22:56

x86

System.runtime.serialization.dll

3.0.4506.4119

970,752

01 червня 2009 року.

22:56

x86

System.servicemodel.dll

3.0.4506.4119

5,931,008

01 червня 2009 року.

22:56

x86

Відомості про файли для всіх процесорів x64 ОС Windows Server 2003 та Windows XP

Ім'я файлу

Версія файлу

Розмір файлу

Дата

Час

Платформа

Servicemonikersupport.dll

3.0.4506.4119

19,304

01 червня 2009 року.

22:28

x64

System.runtime.serialization.dll

3.0.4506.4119

847,872

01 червня 2009 року.

22:28

x64

System.servicemodel.dll

3.0.4506.4119

5,267,456

01 червня 2009 року.

22:28

x64

Відомості про файли для всіх процесорів x86 ОС Windows Vista SP2 та Windows Server 2008 SP2

Ім'я файлу

Версія файлу

Розмір файлу

Дата

Час

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

Відомості про файли для всіх процесорів x64 ОС Windows Vista SP2 та Windows Server 2008 SP2

Ім'я файлу

Версія файлу

Розмір файлу

Дата

Час

Платформа

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

Відомості про файли для всіх на базі Itanium версій Windows Server 2008 SP2

Ім'я файлу

Версія файлу

Розмір файлу

Дата

Час

Платформа

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

Стан

Корпорація Майкрософт підтвердила існування цієї неполадки у продуктах Майкрософт, перелічених у розділі "Застосовується до".

Додаткові відомості

Використовувати такий приклад коду для перевірки enableUnsecuredResponse атрибут:

Служба

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();

Клієнт

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();
}

Потрібна додаткова довідка?

Отримуйте нові функції раніше за інших
Приєднатися до Microsoft оцінювачів

Ця інформація корисна?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?

Дякуємо за відгук!

×