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

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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

Mục lụcĐẠI HỌC QUỐC GIA TP.HCMTRƯỜNG ĐẠI HỌC BÁCH KHOAKHOA KHOA HỌC & KỸ THUẬT MÁY TÍNHBÁO CÁO BÀI TẬP LỚNXÂY DỰNG ỨNG DỤNG WEB CHỨC NĂNG QUẢN 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 đầuNhằ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 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ụngTrong 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 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ụngCơ sở dữ liệu được áp dụng 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ụng3.1. Kiến trúc tổng quanMô 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ử các chức năng chính.• Data layer: truy xuất dữ liệu từ sở dữ liệu. Hệ quản trị 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ử 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ử 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 MVCController là các class .net, được thừa kế từ các base class Controller 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ó 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 thể xử 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ụng4.1. Trang chủ và quản accountController quản trang Home là HomeController. Vì trang home được thiết kế đơn giản nên không model tương ứng. Các View tương ứng với phần Home là About.aspx và Index.aspx. AccountController quản mọi sự kiện liên quan đến account như logon, logoff, register, change password, … AccountModels là model tương ứng, xử các sự kiện do controller gửi đến. Các View tương ứng với phần quản Account là ChangePassword.aspx, Index.aspx, ChangePasswordSuccess.aspx, LogOn.aspx và Register.aspx.Quản 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 roleNhiệm vụ quản 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 profileTương tự như mục role, ProfileController làm việc với ProfileModel và ProfileView.4.4. Quản userUserController, UserModel và các View là Create, Delete, Edit, EditUserRole, EditUserSysPrivs, GetAllUser, GrantUserRole, GrantUserSysPrivs, Index.4.5. Quản 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)ascursor c2 isselect irole.username username, granted_role as rolefrom DBA_ROLE_PRIVSwhere grantee =irole.role;grantee_row c2%rowtype;beginopen c2;loopfetch 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ụng5.1. Log inNhấ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.5.2. Quản userNhấn vào tab User, người dùng sẽ được chuyển đến trang quản User. Trang này sẽ hiển thị thông tin của tất cả user mà account hiện tại thể thấy được. Muố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 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):5.3. Quản profileNhấn vào tab Profile trên thanh panel chính. Các profile trong hệ thống sẽ được hiển thị. [...]... đối tượng của user 6 Kết luậ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 chức năng quản 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 ...Trang này cũng 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ể Nhấn vào Create Profile để tạo mới profile Ứ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 role Nhấn vào tab Role trên thanh panel chính để chuyển sang phần quản role Cũng tương tự trang quản Profile, tất cả các role... được gán profile đó 5.5.4 Bảng quản thông tin user 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 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ấp quyền đó cho user khác hay không • Quyền hệ thống của user • Quyền đối tượng của user 6 Kết luận Với việc áp dụng các kiến thức học được về... nhập 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 Edit một role sẽ gồm 4 mục nhỏ: • Genenal: để edit password cho role • • • Granted Role: Xem và gán role mới cho role System privileges: Xem và gán quyền hệ thống cho role Object privilege: Xem và gán quyền đối tượng cho role 5.5 Các chức năng quản cho . 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. 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

Ngày đăng: 23/01/2013, 00:32

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan