Chương 1
Tổng Quan Về ASP.Net
Khoa CNTT,Trường CĐ CNTT TP.HCM
1.1 Giới thiệu về ASP.Net và .Net Framework
1.2 Tạo ứng dụng Web với Microsoft Visual 2005
1.3 Các thành phần giao diện trên VS .Net
1.4 Triển khai ứng dụng web
441 trang |
Chia sẻ: phuongt97 | Lượt xem: 516 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Lập trình Web ASP.NET với C# - Phạm Đào Minh Vũ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
kết nối khi cần và đóng
lại
307
Khoa CNTT, Trường CĐ CNTT TP.HCM
Các thuộc tính của DataAdapter
. DeleteCommand: Đối tượng Command chứa nội
dung lệnh hủy các mẫu tin trên nguồn dữ liệu.
. InsertCommand: Đối tượng Command chứa nội
dung lệnh thêm các mẫu tin trên nguồn dữ liệu.
. SelectCommand: Đối tượng Command chứa nội
dung lệnh truy xuất các mẫu tin trên nguồn dữ liệu.
. UpdateCommand: Đối tượng Command chứa nội
dung lệnh sửa các mẫu tin trên nguồn dữ liệu.
308
Khoa CNTT, Trường CĐ CNTT TP.HCM
Các chức năng của DataAdapter
. Lấy dữ liệu từ nguồn:
- DataTable: Fill()
- DataSet: Fill()
Dữ liệu lấy về DataSet dưới dạng các dataTable
với tên là: Table0,Table1, Table2. . .
- Đổ dữ liệu vào Datset cho bảng DataTable nếu
chưa có sẽ tạo mới:
Fill(,)
309
Khoa CNTT, Trường CĐ CNTT TP.HCM
. Phương thức trả về số mẫu tin lấy được
Dataset DS as New Dataset()
Integer so;
so= DA.Fill(DS, “Sinhvien”)
. Để cập nhật dữ liệu về nguồn
Update(): Cập nhật các dòng (Các
đối tượng DataRow) vào nguồn dữ liệu.
Update(): Cập nhật các thay đổi trên
tất cả các bảng của Dataset vào nguồn dữ liệu.
Update(): Cập nhật tất cả các thay
đổi trên DataTable vào nguồn dữ liệu.
Update(,) Cập nhật các
thay đổi trên bảng trong Dataset vào nguồn.
310
Khoa CNTT, Trường CĐ CNTT TP.HCM
7.2.5 Dataset
Dataset là một mô hình CSDL quan hệ thu nhỏ
đáp ứng nhu cầu của ứng dụng.
Dataset chứa các bảng (DataTable), các quanhệ
(DataRelation) và các ràng buộc (constraint)
Dataset thuộc tên miền: System.Data.Dataset.
Khai báo
New System.Data.Dataset()
Hoặc
New System.Data.Dataset()
311
Khoa CNTT, Trường CĐ CNTT TP.HCM
Các phương thức
Thêm một bảng vào Dataset
Tables.Add()
Một bảng mới tự động được tạo ra với tên
mặc định Table1, Table2 . . .
Tables.Add()
Một bảng mới tạo ra theo đúng
Ghi chú: Tên bảng có phân biệt chữ in, thường
Xóa bảng ra khỏi Dataset
Tables.Remove()
Xóa bảng ra khỏi tập hợp Table.
312
Khoa CNTT, Trường CĐ CNTT TP.HCM
Kiểm tra bảng có thuộc về Dataset
Tables.Contains()
Lấy chỉ số của bảng
Tables.IndexOf()
Lấy số bảng trong Dataset
Tables.Count
Lấy ra một bảng trong Dataset
Tables()
Để cập nhật các thay đổi trên Dataset
AcceptChanges()
313
Khoa CNTT, Trường CĐ CNTT TP.HCM
Để hủy các thay đổi trên Dataset
RejectChanges()
Để xóa bỏ mọi dữ liệu trên dataSet
Clear()
Để tạo một bản sao của Dataset
Clone()
Để xóa bỏ Dataset
Dispone()
Giải phóng mọi tài nguyên trên vùng nhớ
Dataset đang sử dụng.
Tạo quan hệ giữa hai bảng trong Dataset.
Relations.Add(,
)
Xóa quan hệ giữa hai bảng trong Dataset.
314 Relations.Remove()
Khoa CNTT, Trường CĐ CNTT TP.HCM
7.2.6 DataTable
Dữ liệu các bảng trong nguồn dữ liệu được lấy về
và đưa vào các DataTable. DataTable thuộc tên miền :
System.Data.dataTable.
Cú pháp:
New DataTable();
New DataTable();
DataTable được hình thành từ DataColumn và DataRow.
315
Khoa CNTT, Trường CĐ CNTT TP.HCM
Ví dụ 1: DataAdapter + update dữ liệu
try
{ SqlConnection cnn = new SqlConnection("Data Source=(local);Initial
Catalog=QLbansach;User ID=sa;Password=");
SqlDataAdapter da=new SqlDataAdapter("select * from CHUDE", cnn);
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds);
foreach (DataRow row in ds.Tables[0].Rows)
if (row["MaCD"]=="1")
{
row["TENCHUDE"] = "BBB";
}
response.write(ds.Tables[0].Rows[2].ItemArray[1].ToString());
GridView1.DataSource = ds.Tables[0];
//Không sử dụng SqlCommandBuilder thì không thể update dữ liệu.
da.Update(ds);
}
catch (Exception)
{
response.write("Thất bại!");
}
316
Khoa CNTT, Trường CĐ CNTT TP.HCM
Ví dụ 2: DataAdapter + Procedure(GetNXB)
try
{
SqlConnection cnn = new SqlConnection("Data
Source=(local);Initial Catalog=QLbansach;User ID=sa;Password=");
SqlDataAdapter da = new SqlDataAdapter("GETNXB", cnn);
DataSet ds = new DataSet();
da.Fill(ds);
response.write(ds.Tables[0].Rows[2].ItemArray[1].ToString());
GridView2.DataSource = ds.Tables[0];
}
catch (Exception)
{
response.write("Thất bại!");
}
317
Khoa CNTT, Trường CĐ CNTT TP.HCM
Ví dụ 3: DataAdapter + Procedure tham số (Getchude)
try
{ SqlConnection cnn = new SqlConnection("Data Source=(local);Initial
Catalog=QLbansach;User ID=sa;Password=");
SqlCommand cmd = new SqlCommand("Getchude", cnn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parMACD = new SqlParameter("@MACD", SqlDbType.NChar,
10);
parMACD.Value = "1";
cmd.Parameters.Add(parMACD);
cnn.Open();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds.Tables[0];
cnn.Close();
}
catch (Exception)
{
response.write("Thất bại!");
}
318
Khoa CNTT, Trường CĐ CNTT TP.HCM
Ví dụ 4: DataAdapter + Đối số là command
try
{ SqlConnection cnn = new SqlConnection("Data Source=(local);Initial
Catalog=QLbansach;User ID=sa;Password=");
SqlCommand cmd = new SqlCommand("GETNXB", cnn);
cmd.Connection = cnn;
cmd.CommandType = CommandType.StoredProcedure;
cnn.Open();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
//da.InsertCommand = cmd;
//da.DeleteCommand = cmd;
//da.UpdateCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
cnn.Close();
}
catch (Exception)
{
response.write("Thất bại!");
319
} Khoa CNTT, Trường CĐ CNTT TP.HCM
7.3. Xây Dựng Lớp Xử Lý Dữ Liệu
Để các thao tác với CSDL thuận lợi. Ta nên xây dựng
lớp xử lý dữ liệu đảm nhận việc kết nối CSDL và các thủ
tục xử lý.
. Docbang(string LenhSQL): Nhằm thực hiện câu lệnh
truy vấn SQL để trả về dữ liệu là 1 DataTable
. Thuchienlenh(string LenhSQL): Nhằm thực hiện câu
lệnh Insert, Update, Delete để cập nhật dữ liệu cho
CSDL.
Thực hiện:
. Tạo cấu hình chuỗi kết nối CSDL trong tập tin
Webconfig. (Có thể dùng SQLDatasource để sinh mã)
<add name="KetnoiCSDL" connectionString="Data Source =(local);
Initial Catalog=QLBansach;Integrated Security=True“
providerName="System.Data.SqlClient" />
320
Khoa CNTT, Trường CĐ CNTT TP.HCM
. Tạo mới lớp XLDL.cs: Thêm mới 1 Item
Tên lớp: XLDL.cs
Sẽ lưu lớp này trong thư mục App_Code
321
Khoa CNTT, Trường CĐ CNTT TP.HCM
Thực hiện mã code cho lớp XLDL.cs
. . .
using System.Data.SqlClient;
public class XLDL
{
static string StrCnn = ConfigurationManager.ConnectionStrings["KetnoiCSDL"].
ConnectionString.ToString();
public static DataTable Docbang(string LenhSQL)
{
using (SqlConnection cnn = new SqlConnection(StrCnn))
{
SqlDataAdapter bodocghi = new SqlDataAdapter(LenhSQL, cnn);
DataTable bang = new DataTable();
bodocghi.Fill(bang);
return bang;
}
}
. . .
322
Khoa CNTT, Trường CĐ CNTT TP.HCM
. . .
public static void thuchienlenh(string LenhSQL)
{
using (SqlConnection cnn = new SqlConnection(StrCnn))
{
cnn.Open();
SqlCommand bolenh = new SqlCommand(LenhSQL, cnn);
bolenh.ExecuteNonQuery();
cnn.Close();
}
}
}
323
Khoa CNTT, Trường CĐ CNTT TP.HCM
Chương 8
Công Nghệ Và Dịch Vụ Web
8.1. Dịch vụ web – Webservice
8.2 Công nghệ web 2 – Ajax
324
Khoa CNTT,Trường CĐ CNTT TP.HCM
8.1. Webservice – nội dung
GIỚI THIỆU CÁC ỨNG DỤNG PHÂN TÁN
KIẾN TRÚC HƯỚNG DỊCH VỤ
WEB SERVICE & LẬP TRÌNH WEB SERVICE
325
Khoa CNTT,Trường CĐ CNTT TP.HCM
8.1.1 CÁC ỨNG DỤNG PHÂN TÁN
Dữ liệu
Máy
Ứng dụng tính
phân tán
Dữ liệu
Máy
tính
326
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.1 CÁC ỨNG DỤNG PHÂN TÁN
Xem thông tin thời tiết
Thông tin ngoại tệ
Dịch tự động
Kiểm tra thông tin thẻ
Xem thông tin sân bay
Đặt phòng khách sạn
.
327
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.2 VẤN ĐỀ KHI THIẾT KẾ HỆ PHÂN TÁN
Provider C
Firewall
Firewall
Internet
Firewall
Client Web Service
328
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.3 WEB SERVICE
WEB SERVICE LÀ GÌ?
KIẾN TRÚC WEB SERVICE
XÂY DỰNG WEB SERVICE
SỬ DỤNG WEB SERVICE
329
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.3.1 ĐỊNH NGHĨA
• Là một tập các phương thức được gọi từ xa
thông qua một địa chỉ URL do một tổ chức, cá
nhân cung cấp.
• Giao tiếp theo định dạng chuẩn XML
• Được sử dụng để tạo các ứng dụng phân tán.
330
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.3.2 ĐẶC ĐIỂM
1. Không phụ thuộc vào ngôn ngữ lập trình
2. Được truy cập từ bất cứ ứng dụng nào
3. Hỗ trợ thao tác giữa các thành phần không
đồng nhất
4. Chi phí phát triển thấp
5. Dễ bảo trì
331
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.3.3 KIẾN TRÚC WEBSERVICE
Service Broker
Publish Find
Bind
Service Provider
Service Consumer
332
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.3.4 XÂY DỰNG WEBSERVICE
Tạo mới 1 webservice trong VS2010
333
Khoa CNTT Trường CĐ CNTT TP.HCM
Ví dụ ứng dụng : cộng 2 số nguyên
Đặt tên là file là cong2so.asmx
Trong file Conghaiso.cs, cài đặt phương thức cộng:
[WebService (Namespace = "")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Cong2So : System.Web.Services.WebService {
public Cong2So () {
}
[WebMethod]
public int cong(int a, int b)
{
return a + b;
}
}
334
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.3.4 KIỂM TRA WEBSERVICE
Chạy file cong2so.asmx để kiểm tra phương thức
webservice vừa tạo
335
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.3.4 Thử nghiệm
Kết quả :
336
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.3.4 ngôn ngữ WSDL
Trang webservice được mô tả bằng ngôn ngữ
WSDL (Web Service Description Languague)
337
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.3.5 SỬ DỤNG WEBSERVICE
Sử dụng webservice trong ASP.NET
protected void Button1_Click(object sender, EventArgs e)
{
CongHaiSo c2s = new CongHaiSo();
int a = int.Parse(TextBox1.Text);
int b = int.Parse(TextBox2.Text);
Label1.Text = c2s.Cong2So(a, b).ToString();
}
Kết quả :
338
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.3.5 SỬ DỤNG WEBSERVICE CÓ SẴN
Bước 1 : Add Web Reference
339
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.3.5 SỬ DỤNG WEBSERVICE
Bước 2 : Nhập thông tin đường dẫn
340
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.3.4 SỬ DỤNG WEBSERVICE
341
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.3.5 SỬ DỤNG WEBSERVICE
Bước 3 : Thiết kế giao diện
342
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.3.4 SỬ DỤNG WEBSERVICE
Bước 4: Xử lý code :
343
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.3.5 SỬ DỤNG WEBSERVICE
Kết quả được lấy ngày 10/11, luc 12h00
344
Khoa CNTT Trường CĐ CNTT TP.HCM
8.1.3.6 BÀI TẬP
Tìm hiểu cách viết webservice kết nối CSDL
Tìm cách sử dụng các nguồn webservice hiện đang
có trên internet
Ứng dụng vào đồ án ASP.NET
345
Khoa CNTT Trường CĐ CNTT TP.HCM
8.2. CÔNG NGHỆ WEB AJAX
346
Khoa CNTT,Trường CĐ CNTT TP.HCM
8.2. CÔNG NGHỆ WEB AJAX
GIỚI THIỆU AJAX
DÙNG AJAX VỚI ĐỐI TƯỢNG XMLHTTPREQUEST
DÙNG AJAX VỚI THƯ VIỆN AJAX ASP.NET
347
Khoa CNTT,Trường CĐ CNTT TP.HCM
8.2.1.1 Giới thiệu Ajax
• Mỗi khi Browser gửi yêu cầu về server, bắt buột phải
reload lại toàn bộ trang web
• Công nghệ Ajax giúp Browser gửi yêu cầu đến server
và nhận respone mà không cần load lại toàn bộ trang
• Công nghệ này có thể thực hiện bất đồng bộ (người
dùng vẫn có thể tương tác với trang web trong khi vẫn
chờ nhận response từ server)
• Đây là công nghệ đứng đằng sau các ứng dụng lớn
như : Gmail, GoogleSuggest, GoogleMap,
348
Trường CĐ CNTT TpHCM
8.2.1.1 Giới thiệu Ajax
349
Trường CĐ CNTT TpHCM
8.2.1.2. Ajax là gì?
Ajax : Asynchronous Javascript and XML
(Truy cập dữ liệu không đồng bộ bằng Javascript & XML )
Là một kỹ thuật kết hợp 2 tính năng mạnh của
Javascript được các nhà phát triển đánh giá rất cao.
Gửi yêu cầu đến máy chủ mà không cần nạp lại
trang.
Phân tích và làm việc với XML
Các ứng dụng xoay quanh 1 tính năng mới, gọi là
XMLHttpRequest
350
Trường CĐ CNTT TpHCM
8.2.1.3. Mô hình AJAX
<= Mô hình Client-Server thông thường
Mô hình Client-Server AJAX =>
351
Trường CĐ CNTT TpHCM
8.2.1.3. Đặc điểm của Ajax
XHTML và CSS : Cung cấp các tiêu chuẩn để thể hiện
nội dung trang web với người dùng.
Document Object Model (DOM) : Cung cấp cấu trúc
cho phép hiển thị nội dung và các tương tác liên quan.
DOM mở ra nhiều cách thức mạnh cho người dùng khi
muốn truy cập và thao tác với đối tượng nằm trong
một văn bản bất kỳ.
352
Trường CĐ CNTT TpHCM
8.2.1.3. Đặc điểm của Ajax
Trao đổi và xử lý dữ liệu dùng XML và XSLT : Cung cấp
kiểu định dạng cho dữ liệu, cho phép thao tác, truyền
tải và trao đổi giữa client và server
Thu hồi dữ liệu bất đối xứng (XMLHttpRequest)
Dùng JavaScript hợp nhất tất cả đối tượng với nhau
một cách hiệu quả (JavaScript ở đây là ECMAScript,
chuẩn của ECMA, không phải của MS)
353
Trường CĐ CNTT TpHCM
Web Application truyền thống
Client sẽ gửi HTTP Request đến web server và
webserver sẽ gửi trả response chứa các thông tin yêu
cầu dưới dạng HTML và CSS
Người dùng sẽ phải chờ trang được load lên hết rồi
mới có thể thao tác tiếp
354
Trường CĐ CNTT TpHCM
Web AJAX Application
Việc truyền tải dữ liệu này được thực hiện trên Client
=> giảm tải rất nhiều cho Server
Người dùng cảm thấy trang web được hiển thị ngay
tức thời (không cần nạp lại trang)
Sự kết hợp giữa XHTML và CSS làm cho việc trình bày
giao diện tốt hơn nhiều và giảm đáng kể dung lượng
phải nạp.
355
Trường CĐ CNTT TpHCM
Web AJAX Application
AJAX cho phép tạo ra một AJAX Engine nằm giữa giao
tiếp này.
Khi đó các yêu cầu request và nhận response sẽ do
AJAX Engine thực hiện. Thay vì gửi trả dữ liệu về dưới
dạng HTML và CSS cho trình duyệt, web server sẽ gửi
trả về dạng XML và AJAX Engine sẽ tiếp nhận, phân
tách và chuyển hóa thành XHTML và CSS cho trình
duyệt hiển thị
356
Trường CĐ CNTT TpHCM
8.2.4. Các kiến thức liên quan
• Ngôn ngữ XHTML & CSS
• Mô hình DOM (Document Object Model)
• Ngôn ngữ XML và XSLT
• Ngôn ngữ lập trình Javascript
357
Trường CĐ CNTT TpHCM
XHTML
• XHTML là ngôn ngữ HTML được viết theo chuẩn của
XML tức là luôn có thẻ mở và thẻ đóng cho từng nút.
• Giá trị của các thuộc tính phải được đặt trong dấu “”
<input type="submit" class="button"
value="Đăng nhập" />
358
Trường CĐ CNTT TpHCM
CSS – Cascade Style Sheet
• Ngôn ngữ thiết kế web
p{
font-family: Times New Roman;
font-size : 10;
}
.newstyle{
color: blue;
}
359
Trường CĐ CNTT TpHCM
DOM – Document Object Model
• Mô hình đối tượng tài liệu (thường có dạng cây), dùng
để mô tả và truy xuất các thành phần trong tài liệu
HTML và XML.
s = document.getElementById(“text”).value;
alert(s);
360
Trường CĐ CNTT TpHCM
XML
• Ngôn ngữ lưu trữ dữ liệu có cấu trúc
SV01
Nguyen Minh A
SV02
Nguyen Minh B
361
Trường CĐ CNTT TpHCM
Javascript
• Ngôn ngữ lập trình kịch bản được dùng trong các trang
web.
//code
var t;
t = 5;
• Chú ý : các function trong javascript cho phép chuyền
tham số là cũng một function.
362
Trường CĐ CNTT TpHCM
2. Ajax với đối tượng XmlHttpRequest
363
Trường CĐ CNTT TpHCM
8.2.3. Đối tượng XmlHttpRequest
• Một đối tượng Javascript cho phép tạo các HTTP
request không đồng bộ.
• XmlHttpRequest sẽ tạo các request từ một sự kiện
Javascript.
• Một hàm gọi ngược (call back) của Javascript được
gọi tại mỗi trạng thái của Request và nhận đáp trả
Response từ Server.
364
Trường CĐ CNTT TpHCM
Cách thức hoạt động
Defaul.aspx
Request
Handle()
Response
Nếu có
Hello()
Click 12/2/2010 5:10:2010
Client Server
365
Trường CĐ CNTT TpHCM
Các phương thức của XmlHttpRequest
366
Trường CĐ CNTT TpHCM
Các thuộc tính của XmlHttpRequest
367
Trường CĐ CNTT TpHCM
8.2.5. Lập trình AJAX
Các bước thực hiện :
1. Tạo một trang web
2. Tạo một hàm để lấy đối tượng XmlHttpRequest
3. Viết hàm để bắt tình trạng của XmlHttpRequest
4. Tạo một hàm xử lý kết quả trả về
5. Kết nối tất cả vào trang web
368
Trường CĐ CNTT TpHCM
Ví dụ 1 : Thay đổi ngày giờ
369
Trường CĐ CNTT TpHCM
Ví dụ 1 : Thay đổi ngày giờ
Tạo trang web hello.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
Untitled Document
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<input type="submit" onclick="Hello();" value="Click here to
load data" />
Content of hello file
370
Trường CĐ CNTT TpHCM
Ví dụ 1 : (tt)
Trang hello.html
var httpRequest;
function handler()
{ }
function Hello()
{ }
function GetXmlHttpObject()
{ }
Click here to load data
Content of hello file
371
Trường CĐ CNTT TpHCM
Ví dụ 1 : (tt)
Viết hàm nhận đối tượng XmlHttpRequest
function GetXmlHttpObject()
{
if(window.ActiveXObject){
return (new ActiveXObject("Microsoft.XMLHTTP"));
//IE
}else if(window.XMLHttpRequest){
return (new XMLHttpRequest()); //Netscape, Firefox,
Opera
}else{
return null;
}
}
372
Trường CĐ CNTT TpHCM
Ví dụ 1 : (tt)
Viết hàm xử lý sự kiện Hello
function Hello()
{
httpRequest = GetXmlHttpObject();
var url = "Default.aspx";
httpRequest.onreadystatechange = handler;
httpRequest.open("GET", url, true);
httpRequest.send(null);
}
373
Trường CĐ CNTT TpHCM
Ví dụ 1 : (tt)
Hàm bắt trạng thái của XmlHttpRequest
var httpRequest;
function handler() {
if (httpRequest.readyState == 4) {
document.getElementById("result").innerHTML
= httpRequest.responseText;
}
}
374
Trường CĐ CNTT TpHCM
Ví dụ 1 : (tt)
Trang Default.aspx
Hoặc có thể viết trong phương thức pageload của trang
Default.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(DateTime.Now.ToString());
}
375
Trường CĐ CNTT TpHCM
Ví dụ 1 : (tt)
Kết quả :
Khi click vào liên kết nội dung trong thẻ div được
tải lại từ server nhưng không tải cả trang web
376
Trường CĐ CNTT TpHCM
Chú ý
• Nếu dữ liệu từ server gửi về là dữ liệu có cấu trúc :
Xml, DataTable, Array, thì hàm handle phải được viết
lại để phân tích dữ liệu đó rồi mới xuất ra màn hình.
377
Trường CĐ CNTT TpHCM
Ví dụ 2 : Cộng hai số
function Tinhtong()
{ var a, b ;
a = document.getElementById("txt_a").value;
Hàm Tinhtong() b = document.getElementById("txt_b").value;
var thamso = "a=" + a + "&b=" + b;
của trang var url = "Conghaiso.aspx?"+thamso;
httpRequest= GetXmlHttpObject();
cong2so.htm httpRequest.onreadystatechange = handler;
httpRequest.open("GET", url, true);
httpRequest.send(null);
}
protected void Page_Load(object sender, EventArgs e)
Hàm xử lý của {
int a = int.Parse(Request["a"].ToString());
trang int b = int.Parse(Request["b"].ToString());
int s = a + b;
conghaiso.aspx Response.Write(s.ToString());
378 }
Trường CĐ CNTT TpHCM
Ví dụ 2 : Cộng hai số
var httpRequest;
function handler()
{ }
function Tinhtong()
{ }
function GetXmlHttpObject()
{ }
Nhập số A :
Nhập số B :
Tổng :
379
Trường CĐ CNTT TpHCM
3. Ajax với đối tượng ASP.NET AJAX
• ASP.NET AJAX là một thành phần mở rộng của
ASP.NET 2.0, cho phép phát triển các ứng dụng web
với tính năng AJAX.
• ASP.NET bao gồm một framework các script client, các
control server,
• Việc sử dụng ASP.NET đơn giản nhất là sử dụng bộ
thư viện control của ASP.NET
• Update Panel là control chính
trong ASP.NET AJAX
380
Trường CĐ CNTT TpHCM
Cài đặt ASP.NET AJAX control toolkit
• Tải bộ control tại địa chỉ
475
• Hiện tại bộ control AJAX có 3 phiên bản
• Toolkit 2.0 : .Net Framework 1.1, 2.0 (VS 2003, 2005)
• Toolkit 3.5 : .Net Framework 3.0, 3.5 (VS 2008)
• Toolkit 4 : .Net Framework 4.0 (VS 2010)
381
Trường CĐ CNTT TpHCM
Cài đặt ASP.NET AJAX control toolkit (tt)
• Sau khi tải bộ Toolkit, mở VS tương
ứng và kéo file AjaxControlToolkit.dll
vào trong thanh toolbox
• Tạo một project Website với
Framework tương ứng và mở thanh
toolbox (sẽ thấy các control AJAX)
382
Trường CĐ CNTT TpHCM
Ứng dụng 1 : Sách theo giá
• Trang liệt kê sách theo giá khi chưa sử dụng AJAX
• Mỗi khi chọn giá, trang web phải thực hiện mã lệnh ở server,
rồi load toàn bộ trang web lại để hiện thị danh sách mới.
383
Trường CĐ CNTT TpHCM
Ứng dụng 1 : Sách theo giá (tt)
• Sử dụng Update Panel
• Update Panel là một control cho phép việc thực hiện load dữ
liệu từ server chỉ xảy ra cục bộ trong chính Panel
• Thực hiện
• Kéo thả control Script Manager vào trang web.
(các trang web có sử dụng AJAX cần phải có control Script
Manager để quản lý script)
• Kéo thả control Update Panel vào trang web
• Kéo các control là nguyên nhân của việc load lại trang web và
control hiển thị nội dung vào trong Update Panel
• Chạy trang web
384
Trường CĐ CNTT TpHCM
Ứng dụng 1 : Sách theo giá (tt)
• Trang web sẽ chỉ load lại nội dung trong Update Panel
385
Trường CĐ CNTT TpHCM
Ứng dụng 1 : CHÚ Ý
Đối với VS2005 cài đặt gói AJAX sau khi đã có Website rồi thì phải
làm thêm các bước sau :
Chép file ajaxextensions.dll vào thư mục bin của ứng dụng web
hiện hành
Chỉnh sửa lại file webconfig bằng cách :
tạo mới Website có hỗ trợ AJAX. File->New Website-
>ASP.NET AJAX-Enabled Web Site->OK
sau đó copy nội dụng của file Webconfig ở Website mới
vào file WebConfig của Website củ (chỉnh lại chuỗi kết nối
nếu có).
386
Trường CĐ CNTT TpHCM
Mở rộng
• Ta có thể sử dụng thêm các control trong bộ Ajax Control Toolkit để
phát triển các ứng dụng web, nâng cao khả năng và tốc độ truy xuất
cho website.
387
Trường CĐ CNTT TpHCM
Chương 9
Bảo mật và Quản Trị Website
1. Bảo mật Website
2. Quản trị Website
388
Trường CĐ CNTT TpHCM
9.1 BẢO MẬT WEB
Bảo mật ứng dụng Web
Bảo mật Web Server
389
Written by: Phạm Đào Minh Vũ Khoa CNTT Trường CĐ CNTT TP.HCM
9.1.1 Giới thiệu chung
Khi triển khai ứng dụng Web, người ta thường chỉ chú
trọng vào giao diện, tính ứng dụng, tốc độ (bao gồm
tốc độ xử lý và băng thông), mà quên mất rằng độ
bảo mật của ứng dụng và web server mới là điều quan
trọng mang tính sống còn đối với 1 doanh nghiệp
Một khi ứng dụng web ngày càng mở rộng thì khả
năng xuất hiện lỗi và bị tấn công càng cao
Các cuộc tấn công mang nhiều mục đích khác nhau,
có thể là đánh cắp thông tin, phá hoại hoặc đôi khi chỉ
là đùa giỡn.
390
Written by: Phạm Đào Minh Vũ Khoa CNTT Trường CĐ CNTT TP.HCM
Khi nói đến vấn đề bảo mật, các chuyên gia đều chú
trọng đến sự an toàn của hệ thống mạng và hệ điều
hành. Tuy nhiên, theo thống kê thì hơn 70% các cuộc
tấn công là thông qua Internet (lợi dụng lỗ hổng bảo
mật) và giá trị thiệt hải ước tính hàng tỷ USD mỗi năm
Kẻ tấn công (Hacker) thường lợi dụng lỗ hổng bảo mật
của phần cứng lẫn phần mềm, cài đặt virus, worm,
trojan, lỗi nghiệp vụ của lập trình viên, để thực hiện
các cuộc tấn công.
391
Khoa CNTT Trường CĐ CNTT TP.HCM
392
Khoa CNTT Trường CĐ CNTT TP.HCM
9.1 BẢO MẬT ỨNG DỤNG WEB
Là 1 dạng tấn công phá hoại, mục tiêu là các ứng
dụng Web trên Server
Mục đích của việc tấn công có thể là do phá hoại,
đánh cắp thông tin, thay đổi nội dung website,
393
Written by: Phạm Đào Minh Vũ Khoa CNTT Trường CĐ CNTT TP.HCM
9.2.1. Lỗ hổng bảo mật ứng dụng web
SQL-injection
HTTP Response Splitting
Directory Traversal
Cross Site Scripting (XSS)
File Inclusion
Buffer Overflow
394
Khoa CNTT Trường CĐ CNTT TP.HCM
1 SQL-INJECTION
Tấn công SQL injection là hình thức tấn công chèn các
đoạn mã SQL cho phép khai thác lỗ hổng bảo mật tồn
tại trong cơ sở dữ liệu của một ứng dụng
Chiếm hơn 50% các cuộc tấn công vào website
CSDL:
. Access
. MSSQL
. MySQL
. Oracle
.
Mức độ nguy hiểm:
. Truy vấn vào CSDL của website
. Thay đổi thông tin: thêm, xóa, sửa
. Chiếm quyền admin của website
. Thực thi các lệnh hệ thống
. Làm cơ sở cho các loại tấn công khác: Local, virus,
troj
Các file đính kèm theo tài liệu này:
- bai_giang_lap_trinh_web_asp_net_voi_c_pham_dao_minh_vu.pdf