Xây dựng ứng dụng web có chức năng quản lý người dùng
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
BÁO CÁO BÀI TẬP LỚN XÂY DỰNG ỨNG DỤNG WEB CÓ CHỨC NĂNG QUẢN LÝ NGƯỜI DÙNG
-o0o -Sinh viên:
2 Nguyễn Ngọc Tuấn (50702771)
4 Lê Nguyễn Duy Vũ (50703018)
TP HỒ CHÍ MINH, 12/2010
Trang 2M c l c ục lục ục lục
Lời nói đầu 3
1 Mục đích, yêu cầu của ứng dụng 4
2 Ngôn ngữ xây dựng ứng dụng 4
3 Kiến trúc ứng dụng 4
3.1 Kiến trúc tổng quan 4
3.2 Mô tả kiến trúc MVC (Model-View-Control) 5
3.2.1 Các thành phần của MVC 5
3.2.2 Mô hình MVC cho Web 5
3.2.3 Hiện thực MVC trong ASP.NET MVC 6
4 Chi tiết các class của ứng dụng 6
4.1 Trang chủ và quản lý account 6
4.2 Quản lý role 7
4.3 Quản lý profile 7
4.4 Quản lý user 7
4.5 Quản lý tổng quan cho admin 7
5 Hướng dẫn sử dụng 9
5.1 Log in 9
5.2 Quản lý user 10
5.3 Quản lý profile 12
5.4 Quản lý role 13
5.5 Các chức năng quản lý cho admin 15
5.5.1 Bảng quyền 15
5.5.2 Bảng role 16
5.5.3 Bảng profile 17
5.5.4 Bảng quản lý thông tin user 18
6 Kết luận 19
Trang 3L i nói đ u ời nói đầu ầu
Nhằm mục đích củng cố kiến thức học được từ môn học Bảo mật hệ thống thông tin, trong bài tập lớn
này, nhóm hiện thực một ứng dụng web với chức năng quản lý người dùng Ứng dụng này được xây dựng theo mô hình 3 lớp dựa trên kiến trúc MVC (Model-View-Control)
Cơ sở dữ liệu sử dụng cho ứng dụng là Oracle database Ứng dụng thực hiện các chức năng log-in, tạo, xóa, thay đổi user, profile, role, các chức năng gán quyền, …
Trang 41 M c đích, yêu c u c a ng d ng ục lục ầu ủa ứng dụng ứng dụng ục lục
Trong bài tập lớn này, ứng dụng sẽ hiện thực các chức năng sau đây:
dữ liệu Oracle)
thông tin account của tất cả user (đối với admin)
2. Ngôn ng xây d ng ng d ng ữ xây dựng ứng dụng ựng ứng dụng ứng dụng ục lục
Cơ sở dữ liệu được áp dụng là cơ sở dữ liệu Oracle 10g release 2
Ứng dụng web này được xây dựng bằng ngôn ngữ C#, dựa trên platform ASP.NET Đây là ngôn ngữ được sử dụng rộng rãi hiện nay cho việc phát triển các ứng dụng nền web
3 Ki n trúc ng d ng ến trúc ứng dụng ứng dụng ục lục
3.1 Ki n trúc t ng quan ến trúc ứng dụng ổng quan
Mô hình xây dựng ứng dụng là mô hình 3 lớp (3-layer model), cụ thể:
Presentation layer: phục vụ việc nhận request từ phía client, thay mặt client gửi request cho các lớp
bên dưới và hiển thị các kết quả trả về cho client
Business layer: chức các thành phần xử lý các chức năng chính.
Data layer: truy xuất dữ liệu từ cơ sở dữ liệu Hệ quản trị cơ sở dữ liệu được sử dụng ở đây là Oracle.
Trang 5Kiến trúc xây dựng ứng dụng để hiện thực mô hình trên là ASP.NET MVC2 của Microsoft.
1.
3.2 Mô t ki n trúc MVC (Model-View-Control) ả kiến trúc MVC (Model-View-Control) ến trúc ứng dụng
3.2.1 Các thành ph n c a MVC ầu ủa ứng dụng
thành phần View và Model, lựa chọn thao tác (activity) của Model để thực thi và lựa chọn những trang view nào sẽ được tạo ra Khi nhận input, controller sẽ thông dịch trong input của request và
chuyển nó thành một đối tượng được xử lý bởi Model Về mặt ouput, Controller lấy các đối tượng
dữ liệu (bao gồm cả thông báo lỗi) được tạo ra bởi Model và chuyển sang cho View.
nghĩa bởi controller
3.2.2 Mô hình MVC cho Web
Trang 6Đầu tiên, request sẽ được chuyển đến một class Controller Lớp này sẽ xử lý user input và làm việc với phần model để lấy về kết quả
Phần model nắm giữ các logic về business (ví dụ các đối tượng đại diện một chức năng business, và các luật về business), sẽ tương tác với database để xử lý, trả về kết quả cho controller
Để trả về kết quả cho request, Controller tạo một giao diện người dùng (user interface), mà chứa các
View là những template đơn giản để chuyển đổi giao diện mong muốn thành một đoạn mã HTML.
Chúng được cho phép chứa các logic về mặt hiển thị, chẳng hạn khả năng lặp một danh sách các đối tượng
để tạo ra một hàng thuộc table của HTML cho mỗi đối tượng, hay khả năng che dấu hoặc hiển thị một phần của trang tùy theo một cờ (flag), nhưng không chứa bất cứ chức năng nào phức tạp hơn các chức năng vừa rồi
3.2.
3.2.3 Hi n th c MVC trong ASP.NET MVC ện thực MVC trong ASP.NET MVC ựng ứng dụng
Controller là các class net, được thừa kế từ các base class Controller có sẵn Mỗi public method on class Controller được gọi là một action method, tự động được liên kết với một URL đã được cấu hình sẵn, và sau khi thực hiện một vài thao tác, nó có thể vẽ ra các view
View là những trang Web Forms ASP.NET, thường được hiện thực như là những template ASPX và tránh những cái phức tạp
ASP.NET MVC giành toàn bộ hiện thực model cho người lập trình Nó không cung cấp một kiến trúc đặc biệt nào cho phần model, bởi vì người lập trình có thể xử lý việc hiện thực thông qua các thư viện C#, các tiện ích mở rộng của NET và dựa trên việc lựa chọn database và mã truy xuất dữ liệu (data access code)
Trang 74 Chi ti t các class c a ng d ng ến trúc ứng dụng ủa ứng dụng ứng dụng ục lục
4.
4.1 Trang ch và qu n lý account ủa ứng dụng ả kiến trúc MVC (Model-View-Control)
Controller quản lý trang Home là HomeController Vì trang
home được thiết kế đơn giản nên không có model tương ứng Các
View tương ứng với phần Home là About.aspx và Index.aspx
AccountController quản lý mọi sự kiện liên quan đến
account như logon, logoff, register, change password, …
AccountModels là model tương ứng, xử lý các sự kiện do
controller gửi đến Các View tương ứng với phần quản lý Account
là ChangePassword.aspx, Index.aspx,
ChangePasswordSuccess.aspx, LogOn.aspx và Register.aspx.
Quản lý password: Khi user nhập password thì password này
sẽ được hash bằng giải thuật MD5 và lưu xuống bảng dữ liệu
4.2 Qu n lý role ả kiến trúc MVC (Model-View-Control)
Nhiệm vụ quản lý các thao tác liên quan đến role do
RolesController đảm nhận Nó sẽ làm việc với RolesModel để lấy
kết quả để trả về cho các View: CreateRole, EditRole,
EditRoleObjPrivs (edit quyền đối tượng của role),
GrantRoleObjPrivs (gán quyền đối tượng cho Role), GrantRoleRole (gán role này cho role khác), GrantRoleSysPrivs
(gán quyền hệ thống cho role), RoleView (xem các đặc tính của role như tên, quyền được gán, …), Index.
4.3 Qu n lý profile ả kiến trúc MVC (Model-View-Control)
Tương tự như mục role, ProfileController làm việc với
ProfileModel và ProfileView.
Trang 84.4 Qu n lý user ả kiến trúc MVC (Model-View-Control)
UserController, UserModel và các View là Create, Delete, Edit, EditUserRole, EditUserSysPrivs, GetAllUser, GrantUserRole, GrantUserSysPrivs, Index.
4.5 Qu n lý t ng quan cho admin ả kiến trúc MVC (Model-View-Control) ổng quan
Để phục vụ cho mục đích xem thông tin quyền gián tiếp của tất cả các user trong hệ thống, ta tạo thêm một bảng tạm trong schema SYSTEM tên là USER_ROLE_TB, chứa tên của user và tất cả các role được gán cho nó, kể cả những role được gán gián tiếp thông qua một role khác
create table system.USER_ROLE_TB(
username varchar(30), role varchar(30) )
Và sẽ gán quyền select, insert, update trên bảng này cho user admin Những công việc này sẽ được thực hiện lúc cài đặt hệ thống
Mỗi lần admin muốn xem các quyền của tất cả các user thì đoạn thủ tục sau sẽ được chạy Mục đích là update thông tin cho bảng USER_ROLE_TB
declare
cursor c1 is
emp_row c1%rowtype;
procedure getAllRole(irole IN c1%rowtype)
as
cursor c2 is select irole.username username, granted_role as role from DBA_ROLE_PRIVS
where grantee =irole.role;
grantee_row c2%rowtype;
begin
open c2;
loop
fetch c2 into grantee_row;
exit when c2%NOTFOUND;
values(grantee_row.username, grantee_row.role);
getAllRole(grantee_row);
end loop;
end;
begin
exit when c1%NOTFOUND;
Trang 9insert into system.USER_ROLE_TB values(emp_row.username, emp_row.role);
getAllRole(emp_row);
end;
5 H ướng dẫn sử dụng ng d n s d ng ẫn sử dụng ử dụng ục lục
5.1 Log in
Nhấn vào nút Log In trên trang Home để chuyển sang trang login và điền một số thông tin như username, password, hostname, port, tên database Cuối cùng, nhấn Log On
Sau khi đăng nhập, hệ thống sẽ tự chuyển đến trang hiển thị các thông tin của account vừa đăng nhập
Trang 105.2 Qu n lý user ả kiến trúc MVC (Model-View-Control)
của tất cả user mà account hiện tại có thể thấy được
Trang 11Muốn edit user nào, nhấn vào link Edit trên dòng thông tin của user đó Trang Edit User sẽ hiển thị
như sau:
Ngoài ra, trang này còn có một số field để xem các quyền hệ thống, quyền đối tượng của user đã
chọn Thẻ grantedRole cho phép xem thông tin các role đã được gán và cho phép gán role mới cho user.
Thẻ System Privileges cho phép xem thông tin các quyền hệ thống của user được chọn, và cho phép
gán quyền hệ thống mới cho user đó
Thẻ Object Privileges thì tương tự thẻ System Privileges, cho phép xem thông tin các quyền đối
tượng trên cột, bảng của user được chọn, và cho phép gán quyền đối tượng mới cho user đó
Trang tạo mới user như sau (hiện ra sau khi nhấn vào create New):
Trang 125.3 Qu n lý profile ả kiến trúc MVC (Model-View-Control)
Trang này cũng có các link để thực hiện các thao tác tạo mới profile, edit, xóa, xem một profile cụ thể
Trang 13Ứng dụng chỉ cho phép edit các resource sau của một profile: Sessions_per_user, Connect_time, Idle_time
5.4 Qu n lý role ả kiến trúc MVC (Model-View-Control)
Nhấn vào tab Role trên thanh panel chính để chuyển sang phần quản lý role
Cũng tương tự trang quản lý Profile, tất cả các role mà account đang đăng nhập có thể thấy được sẽ hiện ra, cùng với một số link để edit, xóa, xem thông tin về profile đó
Nhấn vào mục Create New để tạo mới một role.
Trang 14Trang Edit một role sẽ gồm 4 mục nhỏ:
Trang 15 Object privilege: Xem và gán quyền đối tượng cho role.
5.5 Các ch c năng qu n lý cho admin ứng dụng ả kiến trúc MVC (Model-View-Control)
5.5.1 B ng quy n ả kiến trúc MVC (Model-View-Control) ền
Từ panel chính, nhấn vào Management Tables, rồi vào User System Privilege Table hoặc User Object
Privilege Table.
Bảng quyền được chia làm 2 bảng nhỏ hơn:
quyền hệ thống nào với quyền admin option hay không.
những quyền đối tượng nào với quyền grant option hay không.
Trang 165.5.2 B ng role ả kiến trúc MVC (Model-View-Control)
Từ panel chính, nhấn vào Management Tables, rồi vào Role System Privs hoặc Role Object Privs.
Ở đây, chia làm hai bảng nhỏ là role system privs (chứa các thông tin quyền hệ thống của role) và
role Object Privs (chứa các thông tin quyền đối tượng của role).
Bảng Role System Privs sẽ hiển thị tất cả các role trong hệ thống, những quyền hệ thống của role đó
và những user đang được gán role đó
Trang 17Bảng role Object Privs sẽ hiển thị tất cả role trong hệ thống, các quyền đối tượng được gán cho role
đó, và những user (grantee) đang được gán role đó
5.5.3 B ng profile ả kiến trúc MVC (Model-View-Control)
Từ panel chính, nhấn vào Management Tables, rồi vào Profile Table.
Trang 18Liệt kê tất cả các profile và các thông tin tài nguyên của từng profile, cũng như những user nào đang được gán profile đó
5.5.4 B ng qu n lý thông tin user ả kiến trúc MVC (Model-View-Control) ả kiến trúc MVC (Model-View-Control)
Từ panel chính, nhấn vào Management Tables, rồi vào User Info:
Hiển thị các thông tin về quyền của user: cho thấy user nào có những quyền nào, được cấp trực tiếp hay gián tiếp thông qua role, và user có được cấp quyền đó cho user khác hay không
Trang 196 K t lu n ến trúc ứng dụng ận
Với việc áp dụng các kiến thức học được về bảo mật hệ thống thông tin, ứng dụng đã đáp ứng được các yêu cầu đặt ra từ ban đầu, là xây dựng một trang web có các chức năng quản lý người dùng Quá trình hiện thực ứng dụng đã gặp không ít khó khăn Từ đó, nhóm hiểu rõ hơn về hệ quản trị Oracle ở nhiều khía cạnh, đồng thời thu được nhiều kiến thức khác