SlideShare a Scribd company logo
1 of 10
Download to read offline
Bài số 6 
Bảo mật với ASP.NET MVC Application 
Table of Contents 
1 Authentication (Xác thực người dùng) ................................................................................ 2 
1.1 Tạo người dùng mặc định với ASP.NET MVC Application ............................................. 2 
1.2 Quản lý người dùng với công cụ Website Administration Tool ........................................ 3 
1.3 Roles (Phân quyền nhóm người dùng) .................................................................................. 4 
2 Cấu hình xác thực người dùng ............................................................................................. 7 
2.1 Sử dụng SQL Server 2005 ...................................................................................................... 8 
2.2 Cấu hình truy nhập database trong SQL Server ................................................................... 9 
3 Câu hỏi ôn tập ...................................................................................................................... 10 
4 Tài liệu tham khảo ............................................................................................................... 10
Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 2 
1 Authentication (Xác thực người dùng) 
Có nhiều phương pháp xác thực người dùng như Windows Authentication, Forms Authentication. Ở phần này chỉ giớ i thiệu phương pháp xác thực ngườ i dù ng dựa trên Forms (dùng C#). Mục đích của hướng dẫn này là giảng giải cách dùng Forms Authentication để yêu cầu bảo mật bằng password cho các Views. Sử dụng Website Administration Tool tạo ngườ i dù ng và phân quyền nhóm ngườ i dù ng, ngăn chặn những ngườ i dù ng trái phép. 1.1 Tạo người dùng mặc định với ASP.NET MVC Application 
Mặc định khi ứng dụng được tạo sẽ có sẵn một Controllers có tên là AccountController.cs và có sẵn các Views tương ứng ChangePassword.aspx, ChangePasswordSuccess.aspx, Login.aspx, Register.aspx (Figure 1) 
Figure 1. Controllers và Views có sẵn để tạo người dùng 
Views thể hiện việc register một người dùng mới như sau. (Figure 2) 
Figure 2. Tạo người dùng sử dụng công cụ của ASP.NET MVC Application
Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 3 
1.2 Quản lý người dùng với công cụ Website Administration Tool 
Chọn menu Projects  ASP.NET Configuration. Xuất hiện công cụ Website Administration Tool  Chọn tab Security (Figure 3) 
Figure 3. Công cụ Website Administration Tool 
Click vào link Create User để tạo người dùng. Chẳng hạn tạo người dùng tên Lan (Figure 4) 
Figure 4. Tạo người dùng với Website Administration Tool
Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 4 
1.3 Roles (Phân quyền nhóm người dùng) 
Để tạo role trước hết cần phải enable role bằng cách click vào link Enable roles sau đó click vào link Create and Manage roles  tạo role có tên Administrators (Figure 5) 
Figure 5. Tạo role cho người dùng 
Tiếp theo tạo một người dùng mới kết hợp với role đã có (Figure 6)
Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 5 
Figure 6. Tạo người dùng với role Administrators 
Bây giờ ta có 2 người dùng mới, người dùng Lan không thuộc roles và người dùng Trang thuộc roles Administrators. 
Xây dựng một controllers xem tin tức được bảo mật. Yêu cầu người dùng phải đăng nhập mới có quyền xem. Tùy thuộc đối tượng người dùng nào sẽ được vào các vùng tin tức nào. 
BanHangControllersTinTucController.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Mvc.Ajax; namespace BanHang.Controllers { public class TinTucController : Controller { public ActionResult Index() { return View(); } [Authorize] public ActionResult NguoiDung() { return View(); } [Authorize(Users="Lan")] public ActionResult NguoiDungCuThe() { return View(); } [Authorize(Roles = "Administrators")] public ActionResult NhomNguoiDung() { return View();
Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 6 
} } } 
Tạo ra các Views tương ứng với các phương thức của TinTucController.cs: Index.aspx dành cho tất cả người dùng (kể cả người dùng không được xác thực), NguoiDung.aspx chỉ dành cho những người dùng đã được xác thực, NguoiDungCuThe.aspx dành cho người dùng đặc biệt tên là Lan, NhomNguoiDung.aspx dành cho nhóm người dùng thuộc roles Administrators. (Figure 7) 
Figure 7. Các Views tương ứng với TinTucController.cs
Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 7 
Thêm một tab Tin Tức bằng cách tạo một Html.ActionLink trong ViewsSharedSite.Master. (Figure 8) 
Figure 8. Views Index trong ControllersTinTucController.cs 2 Cấu hình xác thực người dùng 
Thông tin về người dùng và quyền truy nhập cho nhóm người dùng được lưu trong cơ sở dữ liệu. Trong ví dụ này thông tin được lưu trữ trong một SQL Express database (RAUN) tên là ASPNETDB.mdf trong folder App_Data của ứng dụng MVC. Database ASPNETDB.mdf được sinh tự động bởi ASP.NET Framework khi sử dụng membership. Mặc định ASPNETDB.mdf bị ẩn, vào Solution Explorer, chọn Show All Files sẽ thấy ASPNETDB.mdf nằm cùng với Database.mdf ở dùng một thư mục App_Data (Figure 9) 
Figure 9. Xem ASPNETDB.MDF bị ẩn bằng Show All Files
Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 8 
Thông thường các ứng dụng thực tế, hầu hết các nhà phát triển đều ít khi dùng database nằm trong SQL Express mà thường sử dụng SQL Server để lưu trữ database. Có thể thay đổi để SQL Server lưu trữ thông tin người dùng bằng hai bước sau: 
 Thêm một đối tượng database Application Services trong hệ quản trị cơ sở dữ liệu (SQL Server) 
 Thay đổi connectionstring trong web.config trỏ đến database đã được tạo 2.1 Sử dụng SQL Server 2005 
Tạo một database mới trong SQL Server 2005 (hướng dẫn này sử dùng phiên bản Developer). (Figure 10) 
Figure 10. Tạo database BanHang trong SQL Server 2005 
Thêm tất cả các table và stored procedure vào database mới. Sử dụng công cụ ASP.NET SQL Server Setup Wizard để sửa đổi thông tin trong database BanHang: 
Vào Start  All Programs  Visual Studio 2008 Visual Studio Tools  Visual Studio 2008 Command Prompt rồi đánh vào aspnet_regsql (Figure 11) 
Figure 11. Thực thi aspnet_regsql từ Visual Studio 2008 Command Prompt 
Thực hiện tuần tự các bước đơn giản để sửa đổi cơ sở dữ liệu BanHang lưu thông tin về người dùng và membership. Database này có thể nằm trong mạng không nhất thiết phải nằm ở máy cục bộ. (Figure 12)
Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 9 
Figure 12. Cập nhật database BanHang để lưu thông tin người dùng 
Sửa đổi file cấu hình web.config trong ứng dụng ASP.NET MVC Application để chuyển lưu trữ thông tin người dùng vào database BanHang trong SQL Server 2005 thay vì sử dụng database ASPNETDB.MDF có sẵn của Visual Studio 2008 trong folder App_Data. 
Trong file web.config sử dụng ASPNETDB.MDF mặc định để lưu thông tin người dùng <connectionStrings> <add name="ApplicationServices" connectionString="data source=.SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/> </connectionStrings> 
Sửa đổi web.config sử dụng database BanHang trong SQL Server để lưu thông tin người dùng. <connectionStrings> <add name="ApplicationServices" connectionString="Data Source=HUNTER-XXSQL2005;Initial Catalog=BanHang;User ID=sa;Password=abc@123;" providerName="System.Data.SqlClient" /> </connectionStrings> 2.2 Cấu hình truy nhập database trong SQL Server 
Sử dụng Intergrated Security để kết nối database cần được thêm một tài khoản người dùng của Windows để đăng nhập vào database. Tài khoản này phụ thuộc vào sử dụng web server nào khi thực thi ứng dụng gồm ASP.NET Development Server (mặc định của Visual Studio) và Internet Information Services (component của Windows), và tài khoản đăng nhập database cũng phụ thuộc vào hệ điều hành. 
Nếu sử dụng ASP.NET Developmet Server cần thêm tài khoản người dùng của Windows để đăng nhập vào database server. Nếu sử dụng IIS cần phải thêm tài khoản người dùng ASPNET (trong WindowsXP) hoặc NT AUTHORITY/NETWORK SERVICE (trong Windows Vista/Windows Server 2008/Windows 7) để đăng nhập database server.
Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 10 
Thêm tài khoản người dùng mới để đăng nhập database sử dụng công cụ Microsoft SQL Server Management Studio (Figure 13) 
Figure 13. Tạo tài khoản đăng nhập mới cho database 
Sau khi tạo tài khoản đăng nhập database, cần phải thiết lập quyền truy nhập của tài khoản. Thiết lập quyền truy nhập sử dụng User Mapping (Figure 14). 
Figure 14. Thiết lập roles cho tài khoản đăng nhập database 3 Câu hỏi ôn tập 
Hỏi: Khi chuyển từ database sử dụng SQL Express sang database sử dụng SQL Server, kết nối với database không thực hiện được (báo lỗi)? 
Trả lời: Nguyên nhân có thể do chưa thiết lập đúng quyền của tài khoản đăng nhập database. Sau khi xem lại thiết lập đúng quyền đăng nhập, xem sử dụng web server nào, nếu dùng IIS thì cần phải thêm tài khoản đăng nhập ASPNET (đối với Windows XP trở xuống) hoặc NT AUTHORITY/NETWORK SERVICE (đối với Windows Vista/Windows 2008 Server/Windows 7) cho database cần sử dụng. 4 Tài liệu tham khảo 
http://asp.net/mvc 
http://www.asp.net/learn/mvc/tutorial-10-cs.aspx 
http://www.asp.net/learn/mvc/tutorial-17-cs.aspx

More Related Content

What's hot

Mô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaMô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaHuy Vũ
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webMasterCode.vn
 
Mô hình mvc trong ASP
Mô hình mvc trong ASPMô hình mvc trong ASP
Mô hình mvc trong ASPHannie Mia
 
bao cao giua ky quan tri mạng windows server 2008
bao cao giua ky quan tri mạng windows server 2008bao cao giua ky quan tri mạng windows server 2008
bao cao giua ky quan tri mạng windows server 2008chuongthai77
 
Bao caothuctap lyhuutai
Bao caothuctap lyhuutaiBao caothuctap lyhuutai
Bao caothuctap lyhuutaiTai Ly
 
Nunit framework for .NET application
Nunit framework for .NET applicationNunit framework for .NET application
Nunit framework for .NET applicationMinh Tri Lam
 
Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)Minh Tri Lam
 
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Minh Tri Lam
 
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợpSức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợpTuyet Tam
 
Kỹ thuật lập trình Gadget
Kỹ thuật lập trình GadgetKỹ thuật lập trình Gadget
Kỹ thuật lập trình Gadgethanoipost
 
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webBài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webMasterCode.vn
 
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất NghệMvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất NghệMasterCode.vn
 
Bao cao thuc tap tuan 5
Bao cao thuc tap tuan 5Bao cao thuc tap tuan 5
Bao cao thuc tap tuan 5Thanh Tuan Ngo
 
MVC
MVCMVC
MVCtkot
 
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...MasterCode.vn
 

What's hot (20)

Mvc 3
Mvc 3Mvc 3
Mvc 3
 
Mô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaMô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với Java
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
 
Asp control
Asp controlAsp control
Asp control
 
Mô hình mvc trong ASP
Mô hình mvc trong ASPMô hình mvc trong ASP
Mô hình mvc trong ASP
 
bao cao giua ky quan tri mạng windows server 2008
bao cao giua ky quan tri mạng windows server 2008bao cao giua ky quan tri mạng windows server 2008
bao cao giua ky quan tri mạng windows server 2008
 
Bao caothuctap lyhuutai
Bao caothuctap lyhuutaiBao caothuctap lyhuutai
Bao caothuctap lyhuutai
 
Nunit framework for .NET application
Nunit framework for .NET applicationNunit framework for .NET application
Nunit framework for .NET application
 
jquery.pdf
jquery.pdfjquery.pdf
jquery.pdf
 
J query
J queryJ query
J query
 
Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)
 
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
 
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợpSức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
 
Kỹ thuật lập trình Gadget
Kỹ thuật lập trình GadgetKỹ thuật lập trình Gadget
Kỹ thuật lập trình Gadget
 
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webBài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
 
Asp.net 3.5 _8
Asp.net 3.5 _8Asp.net 3.5 _8
Asp.net 3.5 _8
 
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất NghệMvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
Mvc4 seminar - hoclaptrinhweb.com - Tài liệu Nhất Nghệ
 
Bao cao thuc tap tuan 5
Bao cao thuc tap tuan 5Bao cao thuc tap tuan 5
Bao cao thuc tap tuan 5
 
MVC
MVCMVC
MVC
 
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
 

Similar to Aspnet 3.5 -06

Asp.net mvc 3 (c#) (9 tutorials) egroups vn
Asp.net mvc 3 (c#) (9 tutorials)   egroups vnAsp.net mvc 3 (c#) (9 tutorials)   egroups vn
Asp.net mvc 3 (c#) (9 tutorials) egroups vnNguyen Van Hung
 
Bai giangvb.net
Bai giangvb.netBai giangvb.net
Bai giangvb.netvvpcdsptin
 
My sql part 2 - manager mysql server - backup & restore database
My sql   part 2 - manager mysql server - backup & restore databaseMy sql   part 2 - manager mysql server - backup & restore database
My sql part 2 - manager mysql server - backup & restore databaselaonap166
 
đề thi trắc nghiệm asp net co kem đáp án trên 400 câu hỏi thiết kế website ki...
đề thi trắc nghiệm asp net co kem đáp án trên 400 câu hỏi thiết kế website ki...đề thi trắc nghiệm asp net co kem đáp án trên 400 câu hỏi thiết kế website ki...
đề thi trắc nghiệm asp net co kem đáp án trên 400 câu hỏi thiết kế website ki...anh hieu
 
cac tinh huong thuong gap khi cai dat va su dung misa sme.net 2015
 cac tinh huong thuong gap khi cai dat va su dung misa sme.net 2015 cac tinh huong thuong gap khi cai dat va su dung misa sme.net 2015
cac tinh huong thuong gap khi cai dat va su dung misa sme.net 2015laonap166
 
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...MasterCode.vn
 
01 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc501 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc5Thanh Nguyen
 
Giao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharpGiao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharpngohanty13
 
Change password user ad 2k8r2 by web
Change password user ad 2k8r2 by webChange password user ad 2k8r2 by web
Change password user ad 2k8r2 by weblaonap166
 
Jdeveloper12c
Jdeveloper12cJdeveloper12c
Jdeveloper12cle larry
 

Similar to Aspnet 3.5 -06 (20)

Asp.net 3.5 _7
Asp.net 3.5 _7Asp.net 3.5 _7
Asp.net 3.5 _7
 
Asp.net mvc 3 (c#) (9 tutorials) egroups vn
Asp.net mvc 3 (c#) (9 tutorials)   egroups vnAsp.net mvc 3 (c#) (9 tutorials)   egroups vn
Asp.net mvc 3 (c#) (9 tutorials) egroups vn
 
Aspnet 3.5 _04
Aspnet 3.5 _04Aspnet 3.5 _04
Aspnet 3.5 _04
 
Asp.net 3.5 _1
Asp.net 3.5 _1Asp.net 3.5 _1
Asp.net 3.5 _1
 
Aspnet 3.5 _02
Aspnet 3.5 _02Aspnet 3.5 _02
Aspnet 3.5 _02
 
Bai giangvb.net
Bai giangvb.netBai giangvb.net
Bai giangvb.net
 
My sql part 2 - manager mysql server - backup & restore database
My sql   part 2 - manager mysql server - backup & restore databaseMy sql   part 2 - manager mysql server - backup & restore database
My sql part 2 - manager mysql server - backup & restore database
 
Windows Aruze
Windows AruzeWindows Aruze
Windows Aruze
 
400 câu hỏi thi trắc nghiệm ASP.NET có đáp án - Thiết kế website kinh doanh 2
400 câu hỏi thi trắc nghiệm ASP.NET có đáp án - Thiết kế website kinh doanh 2400 câu hỏi thi trắc nghiệm ASP.NET có đáp án - Thiết kế website kinh doanh 2
400 câu hỏi thi trắc nghiệm ASP.NET có đáp án - Thiết kế website kinh doanh 2
 
đề thi trắc nghiệm asp net co kem đáp án trên 400 câu hỏi thiết kế website ki...
đề thi trắc nghiệm asp net co kem đáp án trên 400 câu hỏi thiết kế website ki...đề thi trắc nghiệm asp net co kem đáp án trên 400 câu hỏi thiết kế website ki...
đề thi trắc nghiệm asp net co kem đáp án trên 400 câu hỏi thiết kế website ki...
 
cac tinh huong thuong gap khi cai dat va su dung misa sme.net 2015
 cac tinh huong thuong gap khi cai dat va su dung misa sme.net 2015 cac tinh huong thuong gap khi cai dat va su dung misa sme.net 2015
cac tinh huong thuong gap khi cai dat va su dung misa sme.net 2015
 
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
Bài 7: Đối tượng Data Source -Đóng gói ứng dụng - Giới thiệu các kĩ thuật lập...
 
01 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc501 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc5
 
Giao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharpGiao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharp
 
Change password user ad 2k8r2 by web
Change password user ad 2k8r2 by webChange password user ad 2k8r2 by web
Change password user ad 2k8r2 by web
 
Cac bai tap .net
Cac bai tap .netCac bai tap .net
Cac bai tap .net
 
3250
32503250
3250
 
Mo hinh-3-lop
Mo hinh-3-lopMo hinh-3-lop
Mo hinh-3-lop
 
Bai giangvb.net
Bai giangvb.netBai giangvb.net
Bai giangvb.net
 
Jdeveloper12c
Jdeveloper12cJdeveloper12c
Jdeveloper12c
 

Aspnet 3.5 -06

  • 1. Bài số 6 Bảo mật với ASP.NET MVC Application Table of Contents 1 Authentication (Xác thực người dùng) ................................................................................ 2 1.1 Tạo người dùng mặc định với ASP.NET MVC Application ............................................. 2 1.2 Quản lý người dùng với công cụ Website Administration Tool ........................................ 3 1.3 Roles (Phân quyền nhóm người dùng) .................................................................................. 4 2 Cấu hình xác thực người dùng ............................................................................................. 7 2.1 Sử dụng SQL Server 2005 ...................................................................................................... 8 2.2 Cấu hình truy nhập database trong SQL Server ................................................................... 9 3 Câu hỏi ôn tập ...................................................................................................................... 10 4 Tài liệu tham khảo ............................................................................................................... 10
  • 2. Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 2 1 Authentication (Xác thực người dùng) Có nhiều phương pháp xác thực người dùng như Windows Authentication, Forms Authentication. Ở phần này chỉ giớ i thiệu phương pháp xác thực ngườ i dù ng dựa trên Forms (dùng C#). Mục đích của hướng dẫn này là giảng giải cách dùng Forms Authentication để yêu cầu bảo mật bằng password cho các Views. Sử dụng Website Administration Tool tạo ngườ i dù ng và phân quyền nhóm ngườ i dù ng, ngăn chặn những ngườ i dù ng trái phép. 1.1 Tạo người dùng mặc định với ASP.NET MVC Application Mặc định khi ứng dụng được tạo sẽ có sẵn một Controllers có tên là AccountController.cs và có sẵn các Views tương ứng ChangePassword.aspx, ChangePasswordSuccess.aspx, Login.aspx, Register.aspx (Figure 1) Figure 1. Controllers và Views có sẵn để tạo người dùng Views thể hiện việc register một người dùng mới như sau. (Figure 2) Figure 2. Tạo người dùng sử dụng công cụ của ASP.NET MVC Application
  • 3. Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 3 1.2 Quản lý người dùng với công cụ Website Administration Tool Chọn menu Projects  ASP.NET Configuration. Xuất hiện công cụ Website Administration Tool  Chọn tab Security (Figure 3) Figure 3. Công cụ Website Administration Tool Click vào link Create User để tạo người dùng. Chẳng hạn tạo người dùng tên Lan (Figure 4) Figure 4. Tạo người dùng với Website Administration Tool
  • 4. Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 4 1.3 Roles (Phân quyền nhóm người dùng) Để tạo role trước hết cần phải enable role bằng cách click vào link Enable roles sau đó click vào link Create and Manage roles  tạo role có tên Administrators (Figure 5) Figure 5. Tạo role cho người dùng Tiếp theo tạo một người dùng mới kết hợp với role đã có (Figure 6)
  • 5. Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 5 Figure 6. Tạo người dùng với role Administrators Bây giờ ta có 2 người dùng mới, người dùng Lan không thuộc roles và người dùng Trang thuộc roles Administrators. Xây dựng một controllers xem tin tức được bảo mật. Yêu cầu người dùng phải đăng nhập mới có quyền xem. Tùy thuộc đối tượng người dùng nào sẽ được vào các vùng tin tức nào. BanHangControllersTinTucController.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Mvc.Ajax; namespace BanHang.Controllers { public class TinTucController : Controller { public ActionResult Index() { return View(); } [Authorize] public ActionResult NguoiDung() { return View(); } [Authorize(Users="Lan")] public ActionResult NguoiDungCuThe() { return View(); } [Authorize(Roles = "Administrators")] public ActionResult NhomNguoiDung() { return View();
  • 6. Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 6 } } } Tạo ra các Views tương ứng với các phương thức của TinTucController.cs: Index.aspx dành cho tất cả người dùng (kể cả người dùng không được xác thực), NguoiDung.aspx chỉ dành cho những người dùng đã được xác thực, NguoiDungCuThe.aspx dành cho người dùng đặc biệt tên là Lan, NhomNguoiDung.aspx dành cho nhóm người dùng thuộc roles Administrators. (Figure 7) Figure 7. Các Views tương ứng với TinTucController.cs
  • 7. Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 7 Thêm một tab Tin Tức bằng cách tạo một Html.ActionLink trong ViewsSharedSite.Master. (Figure 8) Figure 8. Views Index trong ControllersTinTucController.cs 2 Cấu hình xác thực người dùng Thông tin về người dùng và quyền truy nhập cho nhóm người dùng được lưu trong cơ sở dữ liệu. Trong ví dụ này thông tin được lưu trữ trong một SQL Express database (RAUN) tên là ASPNETDB.mdf trong folder App_Data của ứng dụng MVC. Database ASPNETDB.mdf được sinh tự động bởi ASP.NET Framework khi sử dụng membership. Mặc định ASPNETDB.mdf bị ẩn, vào Solution Explorer, chọn Show All Files sẽ thấy ASPNETDB.mdf nằm cùng với Database.mdf ở dùng một thư mục App_Data (Figure 9) Figure 9. Xem ASPNETDB.MDF bị ẩn bằng Show All Files
  • 8. Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 8 Thông thường các ứng dụng thực tế, hầu hết các nhà phát triển đều ít khi dùng database nằm trong SQL Express mà thường sử dụng SQL Server để lưu trữ database. Có thể thay đổi để SQL Server lưu trữ thông tin người dùng bằng hai bước sau:  Thêm một đối tượng database Application Services trong hệ quản trị cơ sở dữ liệu (SQL Server)  Thay đổi connectionstring trong web.config trỏ đến database đã được tạo 2.1 Sử dụng SQL Server 2005 Tạo một database mới trong SQL Server 2005 (hướng dẫn này sử dùng phiên bản Developer). (Figure 10) Figure 10. Tạo database BanHang trong SQL Server 2005 Thêm tất cả các table và stored procedure vào database mới. Sử dụng công cụ ASP.NET SQL Server Setup Wizard để sửa đổi thông tin trong database BanHang: Vào Start  All Programs  Visual Studio 2008 Visual Studio Tools  Visual Studio 2008 Command Prompt rồi đánh vào aspnet_regsql (Figure 11) Figure 11. Thực thi aspnet_regsql từ Visual Studio 2008 Command Prompt Thực hiện tuần tự các bước đơn giản để sửa đổi cơ sở dữ liệu BanHang lưu thông tin về người dùng và membership. Database này có thể nằm trong mạng không nhất thiết phải nằm ở máy cục bộ. (Figure 12)
  • 9. Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 9 Figure 12. Cập nhật database BanHang để lưu thông tin người dùng Sửa đổi file cấu hình web.config trong ứng dụng ASP.NET MVC Application để chuyển lưu trữ thông tin người dùng vào database BanHang trong SQL Server 2005 thay vì sử dụng database ASPNETDB.MDF có sẵn của Visual Studio 2008 trong folder App_Data. Trong file web.config sử dụng ASPNETDB.MDF mặc định để lưu thông tin người dùng <connectionStrings> <add name="ApplicationServices" connectionString="data source=.SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/> </connectionStrings> Sửa đổi web.config sử dụng database BanHang trong SQL Server để lưu thông tin người dùng. <connectionStrings> <add name="ApplicationServices" connectionString="Data Source=HUNTER-XXSQL2005;Initial Catalog=BanHang;User ID=sa;Password=abc@123;" providerName="System.Data.SqlClient" /> </connectionStrings> 2.2 Cấu hình truy nhập database trong SQL Server Sử dụng Intergrated Security để kết nối database cần được thêm một tài khoản người dùng của Windows để đăng nhập vào database. Tài khoản này phụ thuộc vào sử dụng web server nào khi thực thi ứng dụng gồm ASP.NET Development Server (mặc định của Visual Studio) và Internet Information Services (component của Windows), và tài khoản đăng nhập database cũng phụ thuộc vào hệ điều hành. Nếu sử dụng ASP.NET Developmet Server cần thêm tài khoản người dùng của Windows để đăng nhập vào database server. Nếu sử dụng IIS cần phải thêm tài khoản người dùng ASPNET (trong WindowsXP) hoặc NT AUTHORITY/NETWORK SERVICE (trong Windows Vista/Windows Server 2008/Windows 7) để đăng nhập database server.
  • 10. Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 10 Thêm tài khoản người dùng mới để đăng nhập database sử dụng công cụ Microsoft SQL Server Management Studio (Figure 13) Figure 13. Tạo tài khoản đăng nhập mới cho database Sau khi tạo tài khoản đăng nhập database, cần phải thiết lập quyền truy nhập của tài khoản. Thiết lập quyền truy nhập sử dụng User Mapping (Figure 14). Figure 14. Thiết lập roles cho tài khoản đăng nhập database 3 Câu hỏi ôn tập Hỏi: Khi chuyển từ database sử dụng SQL Express sang database sử dụng SQL Server, kết nối với database không thực hiện được (báo lỗi)? Trả lời: Nguyên nhân có thể do chưa thiết lập đúng quyền của tài khoản đăng nhập database. Sau khi xem lại thiết lập đúng quyền đăng nhập, xem sử dụng web server nào, nếu dùng IIS thì cần phải thêm tài khoản đăng nhập ASPNET (đối với Windows XP trở xuống) hoặc NT AUTHORITY/NETWORK SERVICE (đối với Windows Vista/Windows 2008 Server/Windows 7) cho database cần sử dụng. 4 Tài liệu tham khảo http://asp.net/mvc http://www.asp.net/learn/mvc/tutorial-10-cs.aspx http://www.asp.net/learn/mvc/tutorial-17-cs.aspx