Khắc phục: Hotfix cho phép WCF để gửi thư an toàn và nhận được phản hồi không an toàn, và gửi tin nhắn không an toàn và nhận được phản ứng bảo mật, có .NET Framework 3.5 SP1

GIỚI THIỆU

Windows Communication Foundation (WCF) không có chức năng gửi thông báo bảo mật và sau đó nhận được phản hồi không an toàn, hoặc để gửi thư không an toàn và nhận được câu trả lời bảo mật. Hotfix được mô tả trong bài viết này thêm một thuộc tính enableUnsecuredResponse mới. Giá trị mặc định của thuộc tính enableUnsecuredResponse là sai. Nếu bạn đặt giá trị của thuộc tính này đúng, các tính năng mới được kích hoạt trong WCF:

  • WCF khách hàng có thể chấp nhận câu trả lời không an toàn ngay cả khi các thư được bảo vệ bằng cách sử dụng giao thức Secure Socket Layer (SSL) để đăng nhập thư.

  • Dịch vụ WCF có thể gửi phản hồi không an toàn có tiêu đề bảo mật có trong phong bì SOAP ngay cả khi yêu cầu được bảo vệ.

Lưu ý Thuộc tính enableUnsecuredResponse chỉ chỉ áp dụng cho các loại CustomBinding .

Giải pháp

Nếu bạn đang sử dụng .NET Framework 3.0, cài đặt hotfix được mô tả trong bài viết dựa trên kiến thức Microsoft sau:

Khắc phục sự cố 967105 : không có bảo đảm một hotfix cho phép WCF gửi thông báo bảo mật và nhận câu trả lời và gửi thư không an toàn và nhận được phản ứng bảo mật, có .NET Framework 3.0Nếu bạn đang sử dụng các .NET Framework 3.5 gói dịch vụ 1 trên Windows 7 hoặc Windows Server 2008 R2, cài đặt hotfix được mô tả trong bài viết dựa trên kiến thức Microsoft sau:

977420 tập hợp các hotfix có sẵn để khắc phục sự cố trong Windows Communication Foundation trong .NET Framework 3.5 SP1 cho Windows 7 và Windows Server 2008 R2
Nếu bạn đang sử dụng .NET Framework 3.5 Service Pack 1 trên hệ điều hành khác, cài đặt hotfix sau để khắc phục sự cố.

Microsoft hiện đã cung cấp bản cập nhật nóng được hỗ trợ. Tuy nhiên, nó là nhằm khắc phục chỉ sự cố được mô tả trong bài viết này. Áp dụng cho các hệ thống đang gặp sự cố cụ thể này. Hotfix này có thể được kiểm tra thêm. Vì vậy, nếu bạn không bị ảnh hưởng bởi sự cố này, chúng tôi khuyến nghị bạn đợi gói dịch vụ tiếp theo có chứa hotfix này.

Để giải quyết vấn đề này ngay lập tức, hãy liên hệ với dịch vụ hỗ trợ khách hàng Microsoft để lấy hotfix. Để biết danh sách đầy đủ số điện thoại Dịch vụ hỗ trợ khách hàng của Microsoft và thông tin về chi phí hỗ trợ, ghé thăm Web site sau của Microsoft:

http://support.microsoft.com/contactus/?ws=supportLưu ý Trong trường hợp đặc biệt, chi phí thường phát sinh cho cuộc gọi hỗ trợ có thể bị hủy bỏ nếu chuyên viên hỗ trợ Microsoft xác định rằng một Cập Nhật cụ thể sẽ giải quyết vấn đề của bạn. Chi phí hỗ trợ thông thường sẽ áp dụng cho các vấn đề không phù hợp với bản Cập Nhật cụ thể trong câu hỏi và câu hỏi hỗ trợ bổ sung.

Điều kiện tiên quyết

Để áp dụng hotfix này, bạn phải vào .NET Framework 3.5 gói dịch vụ 1.

Yêu cầu khởi động lại

Bạn không phải khởi động lại máy tính sau khi bạn áp dụng hotfix này nếu không có phiên bản .NET Framework được sử dụng.

Thông tin thay thế cập nhật nóng

Hotfix này không thay thế bất kỳ hotfix nào khác.

Thông tin về tệp

Phiên bản tiếng Anh của cập nhật nóng này có các thuộc tính tệp (hoặc thuộc tính tệp mới hơn) được liệt kê trong bảng sau. Ngày và giờ của các tệp này được liệt kê theo Giờ Quốc tế Phối hợp (UTC). Khi bạn xem thông tin về tệp, ngày và giờ được chuyển đổi thành giờ địa phương. Để tìm sự khác nhau giữa UTC và giờ địa phương, sử dụng tab Múi Giờ trong mục Ngày và Giờ trong Pa-nen điều khiển.

Thông tin tệp cho tất cả các phiên bản dựa trên x86 của Windows Server 2003 và Windows XP

Tên tệp

Phiên bản tệp

Kích thước tệp

Ngày

Giờ

Nền tảng

Servicemonikersupport.dll

3.0.4506.4119

17.240 người

01 tháng 6 năm 2009

22:56

x86

System.runtime.serialization.dll

3.0.4506.4119

970,752

01 tháng 6 năm 2009

22:56

x86

System.servicemodel.dll

3.0.4506.4119

5,931,008

01 tháng 6 năm 2009

22:56

x86

Thông tin tệp cho tất cả các phiên bản dựa trên x64 của Windows Server 2003 và Windows XP

Tên tệp

Phiên bản tệp

Kích thước tệp

Ngày

Giờ

Nền tảng

Servicemonikersupport.dll

3.0.4506.4119

19,304

01 tháng 6 năm 2009

22:28

x64

System.runtime.serialization.dll

3.0.4506.4119

847,872

01 tháng 6 năm 2009

22:28

x64

System.servicemodel.dll

3.0.4506.4119

5,267,456

01 tháng 6 năm 2009

22:28

x64

Thông tin tệp cho tất cả các phiên bản dựa trên x86 Windows Vista SP2 và Windows Server 2008 SP2

Tên tệp

Phiên bản tệp

Kích thước tệp

Ngày

Giờ

Servicemonikersupport.dll

3.0.4506.4120

17.240 người

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

Thông tin tệp cho tất cả các phiên bản dựa trên x64 Windows Vista SP2 và Windows Server 2008 SP2

Tên tệp

Phiên bản tệp

Kích thước tệp

Ngày

Giờ

Nền tảng

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

Thông tin tệp cho tất cả phiên bản dựa vào Itanium của Windows Server 2008 SP2

Tên tệp

Phiên bản tệp

Kích thước tệp

Ngày

Giờ

Nền tảng

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

Trạng thái

Microsoft đã xác nhận rằng đây là sự cố trong sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".

Thông tin

Sử dụng mẫu mã sau đây để kiểm tra tính enableUnsecuredResponse :

Dịch vụ

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

Khách hàng

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

Bạn cần thêm trợ giúp?

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Microsoft dùng nội bộ

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

×