Quảng trị web: Bài số 6 Bảo mật với ASP.NET MVC Application doc

10 857 3
Quảng trị web: Bài số 6 Bảo mật với ASP.NET MVC Application doc

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

Thông tin tài liệu

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 ho ̉ 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 pha ́ p xa ́ c thư ̣ c ngươ ̀ i du ̀ 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 ba ̉ o mâ ̣ t bằng password cho ca ́ c Views . Sư ̉ du ̣ ng Website Administration Tool ta ̣ o ngươ ̀ i du ̀ ng va ̀ phân quyền nho ́ m ngươ ̀ i du ̀ ng, ngăn chă ̣ n như ̃ ng ngươ ̀ i du ̀ ng tra ́ i phe ́ 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 cu ̣ Website Administration Tool  Chn tab Security (Figure 3) Figure 3. Công cu ̣ 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. BanHang\Controllers\TinTucController.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 Views\Shared\Site.Master. (Figure 8) Figure 8. Views Index trong Controllers\TinTucController.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ị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-XX\SQL2005;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 ho ̉ 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 . 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. 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ụ. 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

Ngày đăng: 20/06/2014, 23:20

Từ khóa liên quan

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

Tài liệu liên quan