284
Chương 7: ASP.NET và Web Form
17.
17.
Thay đ i quy n đã c p cho mã ASP.NET
ổ
ề
ấ
Thay đ i quy n đã c p cho mã ASP.NET
ổ
ề
ấ
Bạn cần cấp cho phần mã của trang web hoặc dịch vụ Web của bạn nhiều đặc
quyền Windows hơn (như các quyền cho file, thiết lập Registry, cơ sở dữ liệu, và
các tài nguyên khác), hoặc bạn cần hạn chế các đặc quyền hiện có.
Bạn có thể gán trực tiếp các đặc quyền cho tài khoản ASPNET cục bộ, hoặc có
thể cấu hình mã ASP.NET của bạn để sử dụng một tài khoản hoàn toàn khác
bằng cách chỉnh sửa thẻ
<processModel>
trong file machine.config. Bạn cũng có
thể sử dụng kỹ thuật giả nhận (impersonation) để một đoạn mã thực thi với các
quyền của người dùng đã được IIS xác thực.
Mã ASP.NET không chạy dưới tài khoản người dùng đã được IIS xác thực hoặc tài khoản nặc
danh IUSR_[ServerName]. Một phần lý do là tài khoản này thường không có đủ đặc quyền
đối với mã ASP.NET (có thể tạo và xóa các file tạm để quản lý tiến trình biên dịch trang web).
Theo mặc định, các trang ASP.NET chạy bằng tài khoản ASPNET cục bộ, tài khoản này có
một tập các đặc quyền bị giới hạn. Nếu cần mã ASP.NET của bạn thực hiện điều gì đó không
được phép theo mặc định đối với tài khoản cục bộ (chẳng hạn, ghi ra ổ đĩa cứng trên server),
bạn có thể cấp các quyền này cho tiến trình ASPNET. Bạn cũng có thể thay đổi thiết lập này
bằng cách mở file machine.config (nằm trong thư mục <Windows directory>\Microsoft.NET\
Framework\<version>\CONFIG\) và chỉnh sửa thẻ
<processModel>
.
Hình 7.15 File machine.config
Bạn có thể thiết lập các đặc tính
userName
và
password
cho một người dùng bất kỳ, hoặc bạn
có thể đưa vào sử dụng tiến trình ASPNET cục bộ (thiết lập
userName
là
machine
và
password
là
AutoGenerate
) hoặc tài khoản hệ thống cục bộ (thiết lập
userName
là
SYSTEM
và
password
là
AutoGenerate
). Vì tài khoản hệ thống cục bộ có có đầy đủ quyền trên máy tính nên đừng bao
giờ sử dụng tài khoản này ngoại trừ mục đích thử nghiệm. Các thiết lập về tài khoản ASP.NET
là toàn cục và tất cả các ứng dụng Web sẽ chia sẻ tài khoản mà bạn chỉ định.