WINDOWS COMMUNICATION FOUNDATION - WCFG IỚI THIỆU Được giới thiệu ở .NET 3 WCF cung cấp mô hình lập trình đơn giản, thống nhất và có thể mở rộng và có thể tương tác với các công nghệ
Trang 2WINDOWS COMMUNICATION FOUNDATION - WCF
G IỚI THIỆU
Được giới thiệu ở NET 3
WCF cung cấp mô hình lập trình đơn giản, thống
nhất và có thể mở rộng và có thể tương tác với các
công nghệ phân tán khác: DCOM, NET
Remoting, XML web service, Sockets, P2P,…
Tích hợp các công nghệ phân tán vào trong API
với namespace System.ServiceModel
Cung cấp các công nghệ khác nhau để người sử
dụng service có thể sử dụng dễ dàng Ví dụ WCF
có thể cung cấp service làm việc với giao thức TCP
hoặc sử dụng XML web service
2
Trang 3CÁC NÉT ĐẶC TRƢNG
Hỗ trợ “strongly typed” định dạng cũng nhƣ
“untyped” messages.
Cho phép ứng dụng net chia sẽ kiểu dữ liệu hiệu
quả giữa các nền (ví dụ J2EE)
Hỗ trợ nhiều binding ( HTTP, TCP, MSMQ,
named pipes) cho phép chọn loại thích hợp để
truyền tải dữ liệu
Hỗ trợ các web service chuyên biệt gần nhất
(WS-Policy, WS-Security, WS-Trust,…)
Tích hợp đầy đủ mô hình anh ninh và các kỹ thuật
an ninh
Hỗ trợ session cũng nhƣ hỗ trợ one-way message
Wednesday, March 21, 2012
3
Trang 4K IẾN TRÚC CỦA WCF
4
Trang 5C ÁC THÀNH PHẦN CƠ BẢN CỦA ỨNG DỤNG WCF
The WCF Service assembly: *.dll chứa đựng các
class và interface trình bày các chức năng
(functions) để người khác có thể gọi
The WCF Service host: host WCF Service
assembly
The WCF client: đây là một application truy xuất
các chức năng của service qua proxy
Wednesday, March 21, 2012
5
Trang 6ABC S CỦA WCF
Host và client trao đổi với nhau thông qua ABCs
(address, binding, contact)
Address: Xác định vị trí của service
Binding: chỉ định kênh trao đổi thông tin
Contract: mô tả các phương thức của service
6
Trang 7WCF CONTRACT
Là key để xây dựng WCF service Nó giúp mô tả
service, kiểu dữ liệu và các hàm của service
[ServiceContract]: mô tả interface của service
[OperationContract]: mô tả hàm/thủ tục của
bool boolValue = true;
string stringValue = "Hello ";
……
Trang 8WCF BINDING
Binding là đối tƣợng đƣợc sử dụng để chỉ định chi
tiết trao đổi dữ liệu đƣợc yêu cầu để nối kết đến
endpoint của WCF
Binding có thể chứa các thông tin cơ bản sau:
Protocol: Xác định bộ máy mã bảo mật
Trang 9WCF B INDING
Một số wcf binding hệ thống thường dùng
HTTP-Based Bindings
BasicHttpBinding: Được sử dụng để xây dựng WS-Basic
Profile (WS-I Basic Profile 1.1) Binding này sử dụng HTTP như phương tiện vận chuyển và Text/XML như mã hoá
message mặc định
WSHttpBinding: Tương tự BasicHttpBinding, nhưng cung
cấp nhiều tính năng web service: cung cấp giao dịch(transaction), thông tin tin cậy (reliable) và WS-Address
TCP-Based Bindings
NetNamedPipeBinding:Một Binding an ninh, tin cậy cho
việc trao đổi trên cùng máy giữa các ứng dụng NET
MSMQ-Based Bindings
NetMsmqBinding: Binding hàng đợi (queued) thích hợp cho
trao đổi giữa các máy giữa các ứng dụng NET
Wednesday, March 21, 2012
9
Trang 10WCF A DDRESS
WCF Address giúp xác định endpoint và chỉ cho
các customer của service địa chỉ của nó
Address có các thông tin cơ bản sau:
Scheme: giao thức vận chuyển Ex http, tcp, msmq
MachineName: Tên domain của máy
Port: Cổng đƣợc sử dụng Ví dụ port 80 cho http
Trang 11return string.Format("You entered: {0}", value);
}
Trang 12ProtectionLevel Chỉ định mức độ binding yêu cầu mã hoá, chữ ký số
SessionMode Đƣợc sử dụng để thiết đặt session
Trang 13AsyncPattern Xác định toán tử được thực hiện không đồng bộ
AsynchronousIsInitiating Get hoặc set giá trị mà chỉ định có hay không phương thức
thực hiện toán tử có thể khởi tạo một sessionIsOneWay Chỉ định one way message ( chỉ input message, không
output hoặc biến tham chiếu)IsTerminating Chỉ định WCF runtime kết thúc giao dịch hiện tại sau khi
toán tử thực hiện xong
Trang 15X ÂY DỰNG WCF SERVICE
Thuộc tính [DataContract]
Định nghĩa kiểu dữ liệu mới cho phương thức của
WCF Service, dùng để mô tả dữ liệu được trao đổi giữa
client and service
Trang 16private int poId_value;
// Apply the DataMemberAttribute to the property
}
}
Trang 17H OST WCF S ERVICE
IIS và Window Service thường được sử dụng để
host WCF Service
Thiết đặt ABCs trong Web.config nhằm mục đích
phục vụ những nhu cầu khác nhau của service
Trang 18S Ử DỤNG WCF SERVICE
Tạo proxy client/gọi service qua Visual Studio
18
Trang 20B ẢO MẬT WCF
Có 2 cách bảo mật cơ bản trong wcf là: message
and transport security Tuy nhiên có thể kết hợp
2 loại này
Transport Security
20
Trang 21B ẢO MẬT WCF
Transport security được sử dụng trong trường hợp
Cả service and client được đặt ở intranet
Message được gửi trực tiếp từ ứng dụng đển wcf
service và message không được đi qua một hệ thống
trung gian khác
Ưu điểm Transport security
Nó cung cấp khả năng tích hợp và các phương tiện để
các thành phần trao đổi có thể làm việc với nhau
Nâng cao việc trình diễn (performance)
Luồng (stream) được sử dụng
Wednesday, March 21, 2012
21
Trang 22B ẢO MẬT WCF
Message security
Message security được sử dụng trong trường hợp
Message được gửi đến một wcf service và message này
được chuyển đến một wcf service khác hoặc đi đến một
hệ thống trung gian khác
Wcf client truy xuất wcf service thông qua internet 22
Trang 23B ẢO MẬT WCF
Ƣu điểm của message security
Cung cấp end-to-end security
Cho phép một phần hoặc những message đƣợc chọn để
bảo mật, do đó nâng cao đƣợc sự trình diễn
Hỗ trợ nhiều kênh vận chuyển (transport)
Wednesday, March 21, 2012
23
Trang 24B ẢO MẬT WCF
V Í DỤ TRANSPORT MESSAGE SECURITY
Ví dụ sử dụng user name và password để chứng
thực tính hợp lệ khi sử dụng service và sử dụng
SSL để mã hoá dữ liệu trong quá trình truyền tải
Bước 1: Xây dựng service
Bước 2: Định nghĩa hàm validate để kiểm tra tính
hợp lệ của tài khoản
24
public class AuthenticationHelper : UserNamePasswordValidator
using System.IdentityModel.Selectors;
Trang 25B ẢO MẬT WCF
V Í DỤ TRANSPORT MESSAGE SECURITY
Wednesday, March 21, 2012
25
public override void Validate(string userName, string password){
if (userName == null || password == null){
throw new Exception("User Name or Password cannot be null");}
private bool CheckIfUserNameExist(string userName)
private bool AuthenticateUser(string userName, string password)
Trang 26B ẢO MẬT WCF
V Í DỤ TRANSPORT MESSAGE SECURITY
Bước 3: Thiết đặt security trong web.config
26
<services>
<service name="WCF_CustomUNamePwdeSecureService.Service" behaviorConfiguration="MyBehavior">
<endpoint address="" binding="basicHttpBinding"
Trang 28Thiết đặt thông tin chứng nhận bảo mật (SecurityCredentail) cho service
Lớp chứng thực tài khoản người dùng
Trang 29B ẢO MẬT WCF
V Í DỤ TRANSPORT MESSAGE SECURITY
Bước 4: Tạo proxy client tham chiếu đến WCF
service và thiết đặt thông tin bảo mật