256
Chương 7: ASP.NET và Web Form
</authorization>
</system.web>
</configuration>
ASP.NET xét qua các quy tắc phân quyền theo thứ tự chúng xuất hiện và dừng khi tìm thấy
một trùng khớp. Trong ví dụ này, người dùng trong các nhóm
Guest
hoặc
Associate
sẽ tự
động bị từ chối. Người dùng
nnbphuong81
sẽ được phép (trừ khi anh ta là thành viên của một
trong hai nhóm bị cấm ở trên). Tất cả các người dùng khác sẽ bị từ chối. Trong trường hợp
này, đây là các nhóm và tài khoản người dùng cục bộ. Nếu muốn nói đến một tài khoản miền,
bạn hãy sử dụng cú pháp
[DomainName]\[UserName]
.
Để ý trong ví dụ này, file Web.config không chứa phần
<authentication>
. Đó là vì phần này
đã được cấu hình trong file Web.config thuộc thư mục ứng dụng Web. Các thư mục con có thể
thiết lập các quy tắc phân quyền của chúng, nhưng chúng không thể thay đổi chế độ xác thực.
Một tùy chọn khác không cho truy xuất đến các trang cụ thể là sử dụng đặc tính
<location>
:
<configuration>
<system.web>
<!-- Bỏ qua các thiết lập khác. -->
</system.web>
<location path="SecurePage.aspx">
<system.web>
<authorization>
<deny roles="Guest" />
</authorization>
</system.web>
</location>
</configuration>
Cuối cùng, bạn có thể viết logic xác thực bằng cách kiểm tra identity của người dùng trong
phần mã trang web (sử dụng thuộc tính
Page.User
, thuộc tính này cung cấp đối tượng
WindowsPrincipal
). Bạn có thể lấy tên người dùng từ thuộc tính
WindowsPrincipal.Identity.Name
, và bạn có thể kiểm tra vai trò thành viên trong nhóm bằng
phương thức
WindowsPrincipal.IsInRole
. Phần mã cho trang web dưới đây sẽ trình bày các
kỹ thuật này:
using System;
using System.Web;
using System.Web.UI.WebControls;