33
Bài ging môn hc Thi Thi ế ế t t k k ế ế & & L L p p tr tr ì ì nh nh WEB 2 WEB 2 C C á á c c đ đ i i tư tư ng ng c c a a ASP.NET ASP.NET Khoa Công nghthông tin Trường Đạihc Khoa hcTnhiên

Cac Doi Tuong Cua ASP

  • Upload
    vann186

  • View
    212

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Cac Doi Tuong Cua ASP

Bài giảng môn học

ThiThiếếtt kkếế & & LLậậpp trtrììnhnh WEB 2WEB 2

CCáácc đđốốii tưtượợngng ccủủaa ASP.NETASP.NET

Khoa Công nghệ thông tin

Trường Đại học Khoa học Tự nhiên

Page 2: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Nội dung

Giới thiệu về các đối tượng của ASP.NET– Response

– Request

– Server

– Application

– Session

Một vài ví dụ

Page 3: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Response Object

Response là đối tượng được tạo ra tương ứng vớimỗi yêu cầu của client

Đối tượng Response thông thường dùng để xử lýcác HTTP Request, và trả kết quả về cho client

Page 4: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Response Object

Thuộc tính Mô tảCharset xác lập bộ charset sẽ truyền

IsClientConnected cho biết hiện thời client có đang kết nối hay không

Cookies các thông tin về Cookies sẽ được ghi xuống client

Page 5: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Response Object

Phương thức Mô tảWrite ghi dữ liệu text

WriteFile ghi dữ liệu từ file

BinaryWrite ghi dữ liệu nhị phân

Close đóng kết nối tới clientEnd Kết thúc thi hành một trangRedirect chuyển client sang một URL khác

Page 6: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Ví dụ

protected void btnClick_Click(object sender, EventArgs e)

{

Response.Redirect(txtLink.Text);

}

Page 7: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Request Object

Cung cấp các thông tin về yêu cầu của client

Được tạo ra tương ứng với các Http Request

Dùng đối tượng này để đọc những thông tin client đã gởi (header, query string, cookies, …)

Page 8: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Request Object

Thuộc tính Mô tảBrowser Cung cấp thông tin liên quan đến trình duyệt của

clientUrl Địa chỉ trang gửi request

QueryString Lấy tham số truyền từ client theo phương thức GET

Form Lấy tham số truyền từ client theo phương thức POST

Cookies các thông tin về Cookies ở client sẽ được đọc lên

Page 9: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Ví dụ - Truyền tham số theo phương thức GET

Cách tạo HTTP QueryString– Gõ trực tiếp vào chuỗi URL

<A HREF=“example.aspx?FirstName=Hanh&LastName=Tran"> string sample</A>

Page 10: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Cookies

Cookies là một mẫu thông tin nhỏ dùng để lưu trữthông tin của người dùng trên máy tính.

Cookies có thể được lưu trữ tạm thời hoặc lưu trữlâu dài.

Page 11: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Cookies

Cookie lưu trữ tạm thời : sẽ không còn giá trị ngaykhi người dùng rời khỏi web site.

Cookie lưu trữ lâu dài : vẫn còn được lưu trữ trênmáy của người dùng,và Web Server có thể đọcnhững thông tin này vào những lần kế tiếp ngườidùng vào web site.

Page 12: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Cookies

Thể hiện trong ASP.NET là lớp HttpCookie

Các thuộc tính của HttpCookie– Name : tên của Cookie

– Domain : domain cookie này thuộc về.

– Expires : xác định thời gian có hiệu lực của Cookie

– Value : Giá trị của Cookie

– HasKeys : Cookie có tập giá trị con hay không

– Values : tập các giá trị của Cookie

Page 13: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Sử dụng Cookies

Lệnh ghi cookies– Response.Cookies[cookie][(key)|.attribute] = value;

• cookie: tên biến• key : tham số tùy chọn, có thể đặt nhiều giá trị cho 1 cookie• attribute: thuộc tính (domain, path,….)

Lấy giá trị cookies– value = Request.Cookies[cookie][(key)|.attribute]

Page 14: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Ví dụ

Cookies đơn– Ghi

Response.Cookies["userName“].Value = "mike“;

Response.Cookies["userName“].Expires = DateTime.Now.AddDays(1);

– Đọc

if (Request.Cookies["userName“] != null)

Label1.Text = Request.Cookies["userName“].Value;

Page 15: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Ví dụ

Cookies có các subkey– Ghi

Response.Cookies["userInfo“]["userName“] = "mike“;

Response.Cookies["userInfo“]["lastVisit“] = DateTime.Now.ToString();

Response.Cookies["userInfo“].Expires = DateTime.Now.AddDays(1);

– Đọcif (Request.Cookies["userInfo“] != null)

{Label1.Text = Request.Cookies["userInfo“]["userName“];

Label2.text = Request.Cookies["userInfo“]["lastVisit“];

}

Page 16: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Ví dụ

Xóa CookiesResponse.Cookies["userName“].Expires = DateTime.Now.AddDays(-1);

Response.Cookies["userInfo“].Expires = DateTime.Now.AddDays(-1);

Page 17: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Server Object

Cung cấp các phương thức giúp– Chuyển điều khiển giữa các trang với nhau

– Lấy các thông tin về mã lỗi, encode, …

Page 18: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Server Object

Các thuộc tính– MachineName : tên server

– ScriptTimeout : thời gian time-out của request

Page 19: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Server Object

Phương thức Mô tảMapPath Ánh xạ địa chỉ tương đối thành địa chỉ tuyệt đối

trên server

Execute Lấy kết xuất từ trang khác…

HtmlEncode Giữ nguyên tag HTML

HtmlDecode Định dạng nội dung theo tag HTML

UrlEncode Mã hóa Url theo ASCIIUrlDecode Giải mã ASCII từ UrlTransfer Lấy kết xuất từ trang khác rồi quay lại

Page 20: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Application Object

Một ASP.NET application bao gồm tất cả các file, trang web, sự kiện, module và code trong phạm vi một thư mục web ảo (virtual directory) và các thưmục con của nó

Đối với mỗi ASP.NET application, một Application Object được tạo ra để thể hiện tình trạng củaASP.NET application này

Application Object được tạo khi client yêu cầu bấtkỳ trang nào trong application này

Page 21: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Application Object

Application Object bị hủy khi– Stop Web Server

– Server bị sập

– Hủy ASP.NET Application

Sự kiện– Application_OnStart

– Application_OnEnd

(global.asax)

Page 22: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Application Object

Application Object chứa một danh sách các biếntrạng thái dùng chung của application. Ta có thểsử dụng chúng để lưu trữ các thông tin xuyênsuốt ứng dụng

Các biến trạng thái này được lưu trữ thành từngcặp key-value.– Key : tên trạng thái

– Value : giá trị trạng thái

Application[“SoLan"] = 0;

Page 23: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Ví dụ – Đếm số lần duyệt 1 trang web

//global.asax<script language="C#" runat="server">

void Application_OnStart(Object sender, EventArgs E) {Application [“SoLan"] = 0;

}</script>

//Myform.aspx.csvoid Page_Load(Object Src, EventArgs E){

Application[“SoLan"] = (Int32) Application [“SoLan"] + 1;Response.Write(“Số lần vào trang này :" + Application [“SoLan"]);

}

Page 24: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Ví dụ – Đếm số lần duyệt 1 trang web (Cải tiến)

void Page_Load(Object Src, EventArgs E){

Application.Lock();

Application[“SoLan"] = (Int32) Application [“SoLan"] + 1;

Application.UnLock();Response.Write(“Số lần vào trang này :" + Application [“SoLan"]);

}

Page 25: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Session Object

Một session (phiên làm việc) là một chuỗi các thaotác của người dùng trên cùng một web application

Với mỗi phiên làm việc của client, sẽ có mộtSession Object được tạo ra

Session Object sẽ cung cấp cho ta những thôngtin về phiên làm việc hiện hành này của client

Page 26: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Session Object

Session được tạo ra khi client bắt đầu phiên làm việc củamìnhSession sẽ được hủy khi– Client tường minh thoát khỏi session– Sau một khoảng thời gian (time-out), client không có hànhđộng làm việc nào

Sự kiện– Session_OnStart– Session_OnEnd(global.asax)

Page 27: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Session Object

Ý nghĩa

Session.Timeout = minutes Đặt thời gian của phiên làm việc

Session.SessionID ID của phiên làm việc

Session.Abandon() Hủy phiên làm việc (hủy cả biến dữliệu)

Page 28: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Session Object

Cung cấp cho ta một danh sách các trạng tháixuyên suốt session này

Các trạng thái của Session Object cũng được tổchức trong một Collections dưới dạng key-value

Session[“DaDangNhap"] = 0;

Page 29: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Ví dụ - Kiểm tra Quyền đăng nhập

Làm thế nào để ngăn không cho người dùng truycập vào các trang web nếu chưa đăng nhập?

Ý tưởng– Dùng các biến Session để lưu trạng thái đăng nhập của người

dùng:

Session[“IsLogin”] = 0/1 : Lưu trạng thái đăng nhập

Session[“Username”] : Lưu Tên đăng nhập

Session[“Authentication”]: Lưu Loại quyền đăng nhập

Page 30: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Làm thế nào để ngăn không cho người dùng truy cậpvào các trang web nếu chưa đăng nhập?

1. Khởi tạo giá trị mặc định cho biến Session[“IsLogin”] = 0 (chưa đăng nhập)

//global.asax<script language="C#" runat="server">

void Session_OnStart(Object sender, EventArgs E) {Session [“IsLogin"] = 0;

}</script>

Page 31: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Làm thế nào để ngăn không cho người dùng truy cậpvào các trang web nếu chưa đăng nhập?

2. Tạo trang Login.aspx cho phép người dùng đăng nhập– Nếu kiểm tra thông tin đăng nhập không đúng thì hiển thị thông

báo yêu cầu đăng nhập lại. – Ngược lại, nếu ĐÚNG thì dùng một (hoặc nhiều) biến Session

để lưu trạng thái login thành công lại.

//Login.aspx.csvoid btnLogin_Click(Object Src, EventArgs E){

if (Thong tin dang nhap dung)Session [“IsLogin"] = 1;

elseResponse.Write(“Vui lòng nhập lại!”);

}

Page 32: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Làm thế nào để ngăn không cho người dùng truy cậpvào các trang web nếu chưa đăng nhập?

3. Trong tất cả các trang muốn bảo mật, phải thêm đoạn mã sauđể kiểm tra người dùng đã login hay chưa, nếu chưa thìredirect lại trang login.aspx

//MyForm.aspx.csvoid Page_Load(Object Src, EventArgs E){

int nDaDangNhap = (Int32) Session [“IsLogin "];if (nDaDangNhap == 0)

Response.Redirect(“Login.aspx”);}

Page 33: Cac Doi Tuong Cua ASP

Thiết kế & Lập trình WEB 2 – Các đối tượng của ASP.NET

© 2007 Khoa CNTT – ĐH KHTN

Làm thế nào để ngăn không cho người dùng truy cậpvào các trang web nếu chưa đăng nhập?

4. Tạo xử lý khi người dùng logoutReset trạng thái login là chưa đăng nhập

//MyForm.aspx.csvoid btnLogout_Click(Object Src, EventArgs E){

Session [“IsLogin"] = 0;Response.Redirect(“Login.aspx”);

}