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

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;

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.