Aspnet 3.5 -06

10
Bài s6 Bo mt vi ASP.NET MVC Application Table of Contents 1 Authentication (Xc thc ngưi dng) ................................................................................ 2 1.1 Tạo người dùng mc định vi ASP.NET MVC Application ............................................. 2 1.2 Qun lý người dùng vi công cWebsite Administration Tool ........................................ 3 1.3 Roles (Phân quyn nhóm người dùng) .................................................................................. 4 2 Cu hình xác thc ngưi dùng ............................................................................................. 7 2.1 Sdng SQL Server 2005 ...................................................................................................... 8 2.2 Cu hình truy nhp database trong SQL Server ................................................................... 9 3 Câu ho ̉ i ôn tập ...................................................................................................................... 10 4 Ti liu tham kho ............................................................................................................... 10

Transcript of Aspnet 3.5 -06

Page 1: Aspnet 3.5 -06

Bài số 6

Bao mât vơi ASP.NET MVC Application

Table of Contents

1 Authentication (Xac thưc ngươi dung) ................................................................................ 2

1.1 Tạo người dùng mặc định vơi ASP.NET MVC Application ............................................. 2

1.2 Quan 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 hoi ôn tâp ...................................................................................................................... 10

4 Tai liêu tham khao ............................................................................................................... 10

Page 2: Aspnet 3.5 -06

Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 2

1 Authentication (Xac thưc người dung)

Co nhiều phương phap xac thưc người dung như Windows Authentication, Forms Authentication. Ơ phân nay chi

giơi thiêu phương phap xac thưc ngươi dung dưa trên Forms (dung C#). Mục đich cua hương dân nay la giang

giai cach dung Forms Authentication đê yêu câu bao mât băng password cho cac Views . Sư dung Website

Administration Tool tao ngươi dung va phân quyên nhom ngươi dung, ngăn chăn nhưng ngươi dung trai phep.

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

Page 3: Aspnet 3.5 -06

Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 3

1.2 Quan lý người dùng vơi công cụ Website Administration Tool

Chon menu Projects ASP.NET Configuration. Xuât hiên công cu Website Administration Tool Chon tab

Security (Figure 3)

Figure 3. Công cu Website Administration Tool

Click vao 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

Page 4: Aspnet 3.5 -06

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 nhom người dùng)

Để tạo role trươc hết cân phai enable role bằng cach click vao link Enable roles sau đo click vao 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 đã co (Figure 6)

Page 5: Aspnet 3.5 -06

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 co 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 bao mât. Yêu câu người dùng phai đă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();

Page 6: Aspnet 3.5 -06

Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 6

}

}

}

Tạo ra cac Views tương ứng vơi cac phương thức cua TinTucController.cs: Index.aspx dành cho tất ca người

dùng (kể ca người dung không được xác thưc), NguoiDung.aspx chi dành cho những người dung đã được xác

thưc, NguoiDungCuThe.aspx danh cho người dung đặ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

Page 7: Aspnet 3.5 -06

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 nhom người dung đượ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

cua ứ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, chon 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

Page 8: Aspnet 3.5 -06

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

ma 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ệ quan 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 ban Developer). (Figure 10)

Figure 10. Tạo database BanHang trong SQL Server 2005

Thêm tất ca 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 đanh vao 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 gian để 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 phai nằm ở máy cục bộ. (Figure 12)

Page 9: Aspnet 3.5 -06

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 cua

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 khoan người dùng cua Windows để đăng

nhâp vào database. Tài khoan 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 cua Visual Studio) và Internet Information Services (component cua Windows),

và tài khoan đă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 khoan người dùng cua Windows để đăng nhâp vào

database server. Nếu sử dụng IIS cân phai thêm tài khoan 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.

Page 10: Aspnet 3.5 -06

Microsoft Vietnam – DPE team | Bài số 6: Bảo mật với ASP.NET MVC Application 10

Thêm tài khoan 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 khoan đăng nhâp database, cân phai thiết lâp quyền truy nhâp cua tài khoan. 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 hoi ô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)?

Tra lơi: Nguyên nhân có thể do chưa thiết lâp đúng quyền cua tài khoan đă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 phai thêm tài khoan đă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 Tai liệu tham khao

http://asp.net/mvc

http://www.asp.net/learn/mvc/tutorial-10-cs.aspx

http://www.asp.net/learn/mvc/tutorial-17-cs.aspx