CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 485

485

Chương 12: Dịch vụ Web XML và Remoting

5.

5.

Thi t l p thông tin xác th c cho d ch v Web XML

ế ậ

Thi t l p thông tin xác th c cho d ch v Web XML

ế ậ

Bạn muốn gửi các thông tin đăng nhập từ client của dịch vụ Web XML đến IIS
authentication
.

Sử dụng thuộc tính

Credentials

của lớp proxy. Bạn có thể tạo một đối tượng

NetworkCredential

mới chứa username và password; hoặc sử dụng

CredentialCache

để lấy các thông tin xác thực của người dùng hiện hành.

Cũng giống như trang web, dịch vụ Web XML có thể được sử dụng cùng với IIS
authentication
. Những gì bạn cần làm là đặt dịch vụ Web XML vào một thư mục ảo hạn chế
việc truy xuất nặc danh. Tuy nhiên, nếu người dùng có thể cung cấp các thông tin ánh xạ đến
một tài khoản người dùng hợp lệ, người dùng này sẽ được xác thực và bạn có thể lấy các
thông tin xác thực này thông qua đối tượng

WebService.User

.

Khác với trang web, dịch vụ Web XML không có sẵn phương thức nào để thu lấy thông tin xác
thực từ client vì dịch vụ Web XML được thực thi bởi các ứng dụng khác, chứ không phải bởi
người dùng. Do đó, ứng dụng đang tương tác với dịch vụ Web XML sẽ chịu trách nhiệm nhập
bất kỳ thông tin xác thực cần thiết nào.
Ví dụ sau mô phỏng một dịch vụ Web XML có thực hiện xác thực người dùng.

GetIISUser

trả

về người dùng đã được IIS xác thực. Nếu truy xuất nặc danh được phép thì kết quả sẽ là một
chuỗi rỗng. Nếu truy xuất nặc danh bị từ chối thì kết quả sẽ là một chuỗi có dạng
[DomainName]\[UserName] hay [ComputerName]\[UserName].

public class AuthenticationTest : System.Web.Services.WebService {

// Lấy thông tin về người dùng đã được IIS xác thực.

[WebMethod()]

public string GetIISUser() {

return User.Identity.Name;

}

}

Bước cuối cùng là tạo một client có thể cung cấp các thông tin xác thực. Các thông tin này
được nhập thông qua thuộc tính

Credentials

của đối tượng proxy (thiết lập thuộc tính này

tương tự như thiết lập thuộc tính

WebRequest.Credentials

khi lấy về một trang web—tham

khảo mục 11.3). Đoạn mã dưới đây trình bày cách truy xuất một dịch vụ Web XML sử dụng
Basic authentication (xác thực cơ bản):

// Tạo proxy.

localhost.AuthenticationTest proxy = new localhost.AuthenticationTest();

// Tạo thông tin xác thực.

proxy.Credentials = new System.Net.NetworkCredential(

"myUserName", "myPassword");

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.