Tải bản đầy đủ (.docx) (18 trang)

Xây dựng ứng dụng web có chức năng quản lý người dùng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (648.93 KB, 18 trang )

Mục lục
ĐẠ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:
1.Đỗ Sơn Thành (50702200)
2. Nguyễn Ngọc Tuấn (50702771)
3. Nguyễn Lê Vĩnh (50703004)
4. Lê Nguyễn Duy Vũ (50703018)
TP. HỒ CHÍ MINH, 12/2010
Lời nói đầ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, …
1. Mục đích, yêu cầu của ứng dụng
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:
• Chức năng login (có áp dụng mã hóa cho việc lưu trữ password)
• Chức năng tạo, xóa, thay đổi thông tin user.
• Chức năng tạo, xóa, thay đổi profile (khái niệm profile ở đây là profile được định nghĩa trong cơ sở dữ
liệu Oracle)
• Chức năng tạo, xóa, thay đổi role
• Các chức năng gán quyền, thu hồi quyền trên user hoặc role
• Chức năng xem thông tin account của user đang đăng nhập (đối với user bình thường), hoặc xem 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


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
3.1. Kiến trúc tổ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.
Kiế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.
3.2. Mô tả kiến trúc MVC (Model-View-Control)
3.2.1. Các thành phần của MVC
• View: vẽ ouput của thành phần model và chuyển tiếp input của user cho Controller.
• Controller: làm việc như một chốt chặn trong kiến trúc. Nó điều khiển dòng chảy thông tin giữa
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.
• Model: Chứa các logic về kinh doanh (business logic) mà được kiểm tra cho mỗi action được định
nghĩa bởi controller.
3.2.2. Mô hình MVC cho Web
Đầ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 dữ
liệu sẽ hiển thị cho người dùng, bằng cách chọn một View, và công việc còn lại sẽ do View đảm nhận.
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. Hiện thực MVC trong ASP.NET MVC
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).
4. Chi tiết các class của ứng dụng
4.1. Trang chủ và quản lý account
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
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
Tương tự như mục role, ProfileController làm việc với
ProfileModel và ProfileView.
4.4. Quản lý user
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
Để 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
select username, granted_role as role
from dba_users, DBA_ROLE_PRIVS
where username = grantee;
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;
insert into system.USER_ROLE_TB
values(grantee_row.username, grantee_row.role);
getAllRole(grantee_row);
end loop;
end;
begin
open c1;
delete from system.USER_ROLE_TB;
loop
fetch c1 into emp_row;
exit when c1%NOTFOUND;
insert into system.USER_ROLE_TB
values(emp_row.username, emp_row.role);
getAllRole(emp_row);
end loop;
end;
5. Hướng dẫn sử dụng
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.

×