Giới thiệu chung về cấu trúc ASP.NET Framework và cơ bản về C Sharp

Framework chứa đựng hàng nghìn lớp mà bạn có thểsửdụng trong ứng dụng của

mình. Ví dụmột vài lớp của .Net Framework

-Lớp File: cho phép bạn tạo file, sửa, xoá hay kiểm tra sựtồn tại của file trên đĩa cứng

-Lớp Graphics: Cho phép bạn làm việc với nhiều kiểu của ảnh, bạn cũng có thểtạo ra

các ảnh từcác phương thức trên lớp này.

-Lớp SmtpClient: Cho phép bạn gửi thư.

Hiểu vềNamespaces: hơn 13 nghìn lớp trong Netframework. Đây là một con sốrất lớn,

Microsoft đã chia các lớp cùng xửlý vềmột vấn đềgì đó vào các không gian tên chung hay

namespaces.

Một Namespace đơn giản là một danh mục, ví dụtất cảcác lớp thao tác với File và thư

mục chúng ta đưa vào một namespaces chung gọi là System.IO, hay tất cảcác lớp làm việc

với SqlServer có thể đưa vào namespace System.Data.SqlClient.

pdf239 trang | Chuyên mục: ASP.NET | Chia sẻ: dkS00TYs | Lượt xem: 1887 | Lượt tải: 2download
Tóm tắt nội dung Giới thiệu chung về cấu trúc ASP.NET Framework và cơ bản về C Sharp, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
thúc Session của một người sử dụng. 
• Clear: Cho phép xoá toàn bộ dữ liệu trong Session State. 
• Remove: cho phép bạn xoá từng phần tử trong Session State 
5. Điều khiển sự kiện Session 
Có hai sự kiện có liên quan với Session State mà bạn có thể điều khiển nó trong file 
Global.asax là sự kiện Session_Start và Session_End. 
Session_Start xảy ra khi một Sesion mới của người sử dụng được tạo ra. Bạn có thể sử 
dụng sự kiện này để load thông tin của người sử dụng ra từ cơ sở dữ liệu. Ví dụ bạn có thể 
tải dữ liệu về Shoping cart của người sử dụng trong sự kiện này . 
Session_End xảy ra khi kết thúc Session, một Session kết thúc khi thời hạn của Session 
hết hoặc bởi viêcj chỉ định của phương thức Session.Abadon. Ví dụ Khi bạn muốn tự động ghi 
giỏ hàng của người sử dụng vào bảng dữ liệu trong cơ sở dữ liệu khi Session_End xảy ra. 
6. Điều khiển khi Session quá hạn 
Mặc định ASP.NET Framework quy định thời gian quá hạn của Session là 20 phút, trong 
nhiều trường hợp bạn thấy như vậy là quá ít, và bạn nghĩ rằng bạn cần thay đổi thời gian 
này. 
Ví dụ trong trường hợp bạn tạo một trang quản trị của website, khi cập nhật dữ liệu 
bạn có một bài viết dài, và thời hạn 20 phút không thể đủ thời gian cho bạn cập nhật tin đó, 
và để hoàn thành bài đó có thể bạn phải mất 1 giờ. 
Sự bất lợi là nếu tăng thời gian quá hạn của Session lên thì bộ nhớ của ứng dụng càng 
phải sử dụng nhiều, vì vậy khi bạn tăng thời hạn của Session thì bộ nhớ của Server sẽ phải 
dùng càng nhiều. 
Tuy nhiên nếu cần bạn vẫn có thể tăng thời hạn của Session bằng cách bạn có thể chỉ 
định thời gian quá hạn của Session trong file web.config 
Ví dụ: 
 230
7. sử dụng Cookieless Session State 
Mặc định Session State dựa trên Cookie. ASPNET Framework sử dụng 
ASP.NET_SessionId Cookie để định danh người sử dụng trên website mà dữ liệu có thể được 
kết hợp với người sử dụng, nếu người sử dụng vô hiệu hóa Cookie trên trình duyệt thì 
Session State sẽ không làm việc. 
Để Session có thể làm việc khi trình duyệt vô hiệu hóa Cookie bạn cần thêm vào 
Cookieless Session. Khi Cookieless Session được cho phép, thì Session ID của người sử dụng 
sẽ được thêm vào trang URL. 
Đây là một ví dụ của trang URL nhìn giống với khi Cookieless Session được cho phép. 
Bạn cho phép Cookieless Session bằng việc chỉnh sửa các thành phần SessionState 
trong file web.config. Thành phần SessionState bao gồm các một đặc tính cookieless mà nó 
chấp nhận các giá trị sau: 
• AutoDetect: SessionID được lưu trữ trong một cookie khi trình duyệt có cho phép 
Cookie. Ngược lại thì nó lưu trữ vào địa chỉ URL. 
• UseCookies: Session ID luôn luôn lưu trữ trong cookie 
• UseDeviceProfile: Session ID lưu trữ trong cookie khi trình duyệt hỗ trợ Cookie, 
trường hợp ngược lại nó lưu trữ trong địa chỉ URL. 
• UseUri: Session ID luôn luôn được thêm vào URL. 
Trong ví dụ sau đây chúng ta thiết lập cookieless là AutoDetect như vậy ASP.NET 
Framework sẽ kiểm tra sự tồn tại cảu HTTP Cookie header, nếu Cookie header được tìm thấy 
thì Framework sẽ lưu trữ Session trong một cookie và ngược lại thì nó sẽ thêm vào URL. 
Ví dụ: 
 <sessionState cookieless="AutoDetect" 
regenerateExpiredSessionId="true"/> 
III. Sử dụng Profiles 
ASP.NET Framework cung cấp cho bạn một thay thế cho Session hay cookie để lưu trữ 
thông tin của người sử dụng đó là đối tượng Profile 
 231
Bạn tạo một Profile bằng cách định nghĩa một danh sách các thuộc tính Profile trong 
ứng dụng ờ file web.config trong thư mục root. ASP.NET Framework tự động biên dịch một 
lớp chứa đựng các thuộc tính này. 
Ví dụ sau đây sẽ đưa ra một Profile với ba thuộc tính: firstName, lastName và 
NumberOfVisits: 
Trang web.config 
Khi làm việc với Profile bạn chú ý một số thuộc tính sau: 
• Name: chỉ định tên của thuộc tính. 
• Type: cho phép chỉ định kiểu dữ liệu của thuộc tính 
• Defaultvalue: cho phép chỉ định giá trị mặc định của thuộc tính 
• ReadOnly: cho phép tạo thuộc tính chỉ đọc 
• serializeAs: Enables you to specify how a property is persisted into a static repre- 
• sentation. Possible values are Binary, ProviderSpecific, String, and Xml. 
• allowAnonnyMous: cho phép người sử dụng nặc danh đọc và thiết lập thuộc tính 
• Provider: Cho phép bạn kết hợp thuộc tính với một Profile Provider riêng biêt. 
• customeProviderData:Enables you to pass custom data to a Profile provider. 
Sau khi định nghĩa một Profile trong web.config, bạn có thể sử dụng đối tượng Provider 
để chỉnh sửa các thuộc tính Profile. Như ví dụ sau đây bạn sẽ chỉnh sửa hai thuộc tính 
firstName và lastName trên Form, hơn thế nữa chúng ta sẽ thấy mỗi lần trang web được load 
lại thì giá trị của NumberOfVisit sẽ tăng lên một. 
Ví dụ: trang showProfile.aspx 
 232
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="showProfile.aspx.cs" 
Inherits="showProfile" %> 
 void Page_PreRender() 
 { 
 firstName.Text = Profile.firstName; 
 lastName.Text = Profile.lastName; 
 Profile.NumberOfVisits++; 
 numbervisit.Text = Profile.NumberOfVisits.ToString(); 
 } 
 protected void btnUpdate_Click(object sender, EventArgs e) 
 { 
 Profile.firstName = txtFirstName.Text; 
 Profile.lastName = txtLastName.Text; 
 } 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
""> 
 show Profile 
 FirstName: 
 LastName: 
 Number of Visit: 
 233
 <asp:Button ID="btnUpdate" Text="Update" runat="server" 
OnClick="btnUpdate_Click" /> 
Và kết xuất của chương trình như sau: 
Chú ý rằng thuộc tính của Profile được trình bày với kiểu dữ liệu đã quy định trong 
thuộc tính type mà ta định nghĩa trong Profile. 
Một thuộc tính quan trọng của Profile nó là nó có khả năng giữ lại giá trị của thuộc tính 
khi người sử dụng rời khỏi trang web, ví dụ nếu bạn gán thuộc tính Profile cho một người sử 
dụng, người sử dụng đó không quay lại website trong 500 năm thì giá trị đó vẫn được giữ lại 
cho người sử dụng. 
Đối tượng Profile sử dụng models Provider. mặc định Profile Provider là 
SqlProfileProvider, Mặc định Provider lưu trữ dữ liệu Profile trong cơ sở dữ liệu MS SQL Server 
2005 Express được đặt tên là ASPNETDB.mdf, được định vị trong thư mục App_Data. Nếu cơ 
sở dữ liệu không tồn tại thì nó sẽ được tạo tự động khi chạy chương trình có sử dụng Profile. 
MẶc định bạn không thể lưu trữ thông tin Profile cho một người sử dụng nặc danh. 
ASP.NET Framework tính đồng nhất authenticate của bạn kết hợp với thông tin Profile, bạn 
có thể sử dụng đối tượng Profile với các kiểu chuẩn mà authentication hỗ trợ bởi ASP.NET 
Framework, bao gồm cả hai kiểm chứng Forms và Windows 
Creating Profile Groups 
Nếu bạn cần định nghĩa nhiều thuộc tính của Profile, bạn có thể tạo các thuộc tính bằng 
quản lý bởi việc tổ chức các thuộc tính trong Groups. Ví dụ trong file web.config sau định 
nghĩa hai nhóm thuộc tính Preferences và ContactInfo. 
Ví dụ Trang web.config 
 234
Ví dụ sau đây sẽ hướng dẫn bạn cách tạo 
<%@ Page Language="C#" AutoEventWireup="true" 
CodeFile="showProfilegoups.aspx.cs" Inherits="showProfilegoups" %> 
 protected void Page_Load() 
 { 
 lblEmail.Text = Profile.ContactInfo.Email; 
 lblPhone.Text = Profile.ContactInfo.phone; 
 Style pagestyle = new Style(); 
 pagestyle.BackColor = 
ColorTranslator.FromHtml(Profile.Preferences.BackColor); 
 235
 pagestyle.Font.Name = Profile.Preferences.font; 
 Header.StyleSheet.CreateStyleRule(pagestyle, null,"html"); 
 } 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
""> 
 show profile group 
 Email: 
 Phone: 
Hỗ trợ người sử dụng nặc danh 
Mặc định người sử dụng nặc danh không thể chỉnh sửa các thuộc tính của Profile, vấn 
đề là ASPNET Framework không có phương thức kết hợp dữ liệu Profile với người sử dụng 
riêng biêt trừ khi người sử dụng được kiểm chứng. 
Nếu bạn muốn cho phép người sử dụng nặc danh chỉnh sửa các thuộc tính Profile, bạn 
có phải cho phép đặc tính của ASP.NET Framework được gọi là định danh nặc danh. Khi định 
danh nặc danh được cho phép, khi định danh duy nhất được gán đến người sử dụng nặc danh 
và được lưu trữ trong trình duyệt cookie ổn định. 
Hơn thế nữa, bạn phải đánh dấu tất cả các thuộc tính Profile mà bạn muốn cho phép 
người sử dụng nặc danh với các đặc tính cho phép nặc danh. Ví dụ trang web.config sau cho 
phép định danh nặc danh và định nghĩa một thuộc tính Profile mà có thể chỉnh sửa được bởi 
người sử dụng nặc danh. 
 236
 <add name="NumberOfVisits" type="Int32" defaultValue="0" 
allowAnonymous="true"/> 
thuộc tính NumberOfVisits bao gồm thuộc tính allowAnonymous. Chú ý rằng file 
web.config và chỉ cho phép Form Authencation. Khi Form Authentication được cho phép và 
bạn không login, và khi đó bạn là người sử dụng nặc danh. 
Trong ví dụ sau sẽ hướng dẫn cách bạn sửa thuộc tính định danh khi định danh nặc 
danh được cho phép. 
Trang ShowAnonymousIdentification.aspx; 
<%@ Page Language="C#" AutoEventWireup="true" 
CodeFile="ShowAnonymousIdentification.aspx.cs" 
Inherits="ShowAnonymousIdentification" %> 
 void Page_PreRender() 
 { 
 lblName.Text = Profile.UserName; 
 lblanonymous.Text = Profile.IsAnonymous.ToString(); 
 Profile.NumberOfVisits++; 
 lblnumbetofanonymous.Text = Profile.NumberOfVisits.ToString(); 
 } 
 protected void btnLogin_Click(object sender, EventArgs e) 
 { 
 237
 FormsAuthentication.SetAuthCookie("Bob", false); 
 Response.Redirect(Request.Path); 
 } 
 protected void btnLogout_Click(object sender, EventArgs e) 
 { 
 FormsAuthentication.SignOut(); 
 Response.Redirect(Request.Path); 
 } 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
""> 
 Show Anonymous Identification 
 UseName: 
 Is Anonymous: 
 Number of Visits: <asp:Label ID="lblnumbetofanonymous" runat="server" 
/> 
 <asp:Button ID="btnLogin" Text="Login" OnClick="btnLogin_Click" 
runat="server" /> 
 <asp:Button ID="btnLogout" Text="Logout" OnClick="btnLogout_Click" 
runat="server" /> 
 238

File đính kèm:

  • pdfGiới thiệu chung về cấu trúc ASP.NET Framework và cơ bản về C Sharp.pdf
Tài liệu liên quan