Windows authentication
Để cài đặt tích hợp xác thực Windows cho dịch vụ Web của chúng tôi, chúng ta phải khai báo đặc biệt cho IIS sử dụng tích hợp xác thực Windows. Chúng tôi có thể làm điều này bằng cách sử dụng Internet Services Manager. Chạy ứng dụng này trong Control Panel -> Administrative Tools -> Internet Services Manager, ở khung bên trái, chọn nút CSWebservices dưới nút Default Web Site, trong khung bên phải, kích chuột phải vào dịch vụ Web IWAWebservice.asmx , chọn các thuộc tính từ menu và sau đó chọn tab File Security:
Kích vào nút Edit ở nhóm Anonymous access and authentication control, cửa sổ Authentication Methods sẽ xuất hiện.
Theo mặc định, Anonymous access được chọn. Điều này có nghĩa IIS sẽ không dừng bất cứ ai truy cập vào dịch vụ web của chúng tôi, trong thực tế không có chứng thực sẽ được thực hiện ở tất cả. Các thực thể duy nhất mà có thể không có một người sử dụng truy cập vào dịch vụ web này là hệ thống tập tin NT (NTFS) cho phép. NTFS là một tập tin hệ thống với khả năng bảo mật được xây dựng bên trong nó. NTFS luôn kiểm tra các thông tin bảo mật của từng đối tượng theo hướng cố gắng để truy cập các tập tin. Nếu NTFS quyền yêu cầu một số chứng thực, sau đó IIS sẽ thẩm định người sử dụng cho các thông tin.
Chúng tôi không muốn điều này. Do đó, bỏ chọn hộp Anonymous access và cũng bỏ chọn ở hộp Integrated Windows authentication.
Bên cạnh đó, thay đổi các thẻ
Điều này đảm bảo dịch vụ Web của chúng tôi, có tích hợp chứng thực Windows. Để kiểm tra xem web service của chúng tôi đã được thiết lập, mở chọn các tập tin IWAWebservice.asmx từ một trình duyệt.
Chọn mở các tập tin IWAWebservice.asmx từ một máy tính không kết nối với miền của bạn gây ra các hộp thoại xuất hiện.
Điều này cho thấy dịch vụ Web của chúng tôi chỉ có thể truy cập nếu bạn cung cấp thông tin tài khoản hợp lệ Windows.
Tương tự như vậy, nếu chúng ta không vượt qua các thông tin hợp lệ và thử truy cập vào các dịch vụ web trong trình xử lý btnTestIWA_Click trong trang testws.aspx.
Sau đây là đoạn code tạo ra các lỗi bởi vì chúng tôi không vượt qua các thông tin với các yêu cầu gọi phương thức của chúng tôi:
CSWebservices.IWAWebservice
objws = new CSWebservices.IWAWebservice();
CSWebservices.MyIdentity
objIdentity;
objIdentity
= objws.GetMyIdentity();
Để truy cập một dịch vụ Web đã được bảo vệ bởi một số cơ chế xác thực, chúng tôi sử dụng các đối tượng NetworkCredential để chứng thực những thông tin quan trọng. Sau đây là mã hoàn chỉnh từ trang testws.aspx, dùng để truy cập vào IWAWebservice.asmx Web Service bằng cách truyền các thông tin hợp lệ của người sử dụng mà chúng tôi tạo ra cho mục đích thử nghiệm:
private void btnTestIWA_Click(object sender, System.EventArgs e)
{
// Create Web Service object.
CSWebservices.IWAWebservice objws =
new CSWebservices.IWAWebservice() ;
// Create credentials object.
NetworkCredential objCredential =
new NetworkCredential("Test", "test", "yourdomain") ;
// Let Web Service know about your credentials.
objws.Credentials = objCredential ;
// Call method on Web Service.
CSWebservices.MyIdentity objIdentity ;
objIdentity = objws.GetMyIdentity() ;
........................
}
Vì vậy, sau khi cập nhật mã trong xử lý btnTestIWA_Click, nếu chúng ta tìm đến testws.aspx trang và nhấn vào nút Test tích hợp Windows Authentication
» Tin mới nhất:
» Các tin khác: