Bài giảng Lập trình Web ASP.NET với C# - Phạm Đào Minh Vũ

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

pdf441 trang | Chia sẻ: phuongt97 | Lượt xem: 388 | Lượt tải: 0download
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:

  • pdfbai_giang_lap_trinh_web_asp_net_voi_c_pham_dao_minh_vu.pdf
Tài liệu liên quan