Giáo trình ASP.NET nâng cao

phần 1: Các điều khiển nâng cao trong asp.net

Chương 1: Sử dụng điều khiển Login

1.1 Tổng quan về các điều khiển Login

1.2 Sử dụng điều khiển Login

1.3 Sử dụng điều khiển LoginStatus

1.4 Sử dụng điều khiển ChangePassword

1.5 Sử dụng điều khiển PasswordRecovery

Chương 2: ASP.NET Menbership

2.1 Cấu hình Authentication

2.2 Cấu hình Authorization

2.3 Sử dụng ASP.NET Menbership

2.4 Sử dung Role Manager

Chương 3: Global Resource và Local Resource

3.1 Thiết lập Current Culture

3.2 Sử dụng lớp CulterInfo

3.3 Tạo Local Resources

3.4 Tạo Global Resources

3.5 Sử dụng điều khiển Localize

Chương 4: Sử dụng các điều khiển điều hướng

4.1 Tổng quan về Site Map

4.2 Sử dụng điều khiển SiteMapPath

4.3 Sử dụng điều khiển Menu

4.4 Sử dụng điều khiển TreeView

Chương 5: Xây dựng và sử dụng các Điều khiển do người dùng tạo ra

5.1 Tổng quan về xây dụng các điều khiển

5.2 ViewState và ControlState

5.3 Xử lý sự kiện và Dữ liệu trả về

Chương 6: ASP.NET và AJAX

 

Phần 2: Xây dựng ứng dụng Với ASP.NET

(Mục tiêu: Xây dựng website thương mại điện tử, bán máy tính trực tuyến.)

Chương 8: Giới thiệu về hệ thống thương mại điện tử

Chương 9: Mô hình kinh doanh

9.1 Thu thập yêu cầu

9.2 Phân tích hiệu quả

9.3 Nghiên cứu và quản lý rủi do

Chương 10: Mô hình hóa và xây dựng giao diện ứng dụng

10.1 Mô hình hóa hệ thống

10.2 Thiết kế dữ liệu với sqlServer 2005

Chương 11: Thiết kế kiến trúc

11.1 Xây dựng kiến trúc hệ thống

11.2 Tạo các đối tượng dùng chung

11.3 Tạo tầng truy cập dữ liệu

11.4 Tạo tầng xử lý nghiệp vụ

11.5 Lựa chọn tích hợp cho ứng dụng

11.6 Tạo tầng trình bày

Chương 12: Xây dựng ứng dụng

12.1 Phát triển danh mục sản phẩm

12.2 Xây dựng Giỏ hàng

12.3 Tích hợp thanh toán trực tuyến

12.4 Cài đặt Xử lý kiểm tra

12.5 Xây dựng các điều khiển quản trị.

12.6 Xây dựng tài khoản khách hàng

Chương 13: triển khai và bảo trì ứng dụng

 

doc43 trang | Chuyên mục: ASP.NET | Chia sẻ: dkS00TYs | Lượt xem: 3409 | Lượt tải: 2download
Tóm tắt nội dung Giáo trình ASP.NET nâng cao, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
nh giá trị là /.• Protection: cho phép bạn chỉ định cookie kiểm chứng được mã hóa như thế nào. Giá trị có thể là All, Encryption, None và Validation, giá trị mặc định là All.• requiresSSL: Cho phép bạn yêu cầu một SSL(Secure Sockets Layer) kết nối khi truyền cookie kiểm chứng. mặc định giá trị là false.• slidingExpiration: Cho phép bạn ngăn cản cookie xác thực hết hạn như là người sử dụng tiếp tục tạo một yêu cầu trong một khoảng thời gian, có thể có giá trị là False hoặc True, mặc định là Fasle.• timeout: Cho phép bạn chỉ định một lượng thời gian hết hạn của cookie xác thực tính bởi phút. Giá trị mặc định là 30.Ví dụ sau sẽ thay đổi tên của cookie authentication.
Listing 2.1 web1.config
Mã:
2.1.2 Sử dụng kiểm chứng Cookieless Forms.Bình thường, kiểm chứng Form sử dụng một cookie để xác định người sử dụng, tuy nhiên Forms authentication hỗ trợ một thuộc tính đặt tên là cookieless authentication. Khi cookieless authentication được cho phép, một người sử dụng có thể được định danh ngoài cookie của trình duyệt.Bởi việc thêm vào kiểm chứng cookieless, bạn có thể sử dụng Forms Authentication và ASP.NET Menbership để kiểm chứng người sử dụng, một người sử dụng có thể được định nghĩa bởi một thẻ duy nhất được thêm vào địa chỉ URL. Nếu người sử dụng sử dụng các URL quan hệ tới đường dẫn từ trang này tới trang khác, sau đó thẻ này được truyền qua giữa các trang tự động và người sử dụng có thể được định danh trên nhiều trang.Khi bạn gọi một trang mà yêu cầu xác thực và xác thực cookieless được cho phép, địa chỉ URL trên trình duyệt nhìn giống như sau: ... VllOKdQkRktOqV7cfcrgUJ2NKxNhH9dTA7fgzZ-cZwyr4ojyU6EnarC-bbf8g4sl6m4k5kk6Nmcsg1))/SecretFiles/Secret2.aspxBạn cấu hình kiểm chứng cookieless bởi việc gán một giá trị của thành phần form trong file web.config. thuộc tính cookieless chấp nhận một vài thuộc tính sau:• UseCookies: luôn luôn sử dụng cookie xác thực.• UseUri: Không bao giờ sử dụng cookie xác thực.• AutoDetect: tự động phát hiện để sử dụng cookie xác thực.• UseDeviceProfile: sử dụng profile để định rõ khi nào để sử dụng cookie xác thực.Mặc định là giá trị UseDeviceProfile. Bởi mặc định ASP.NET Framework là một cookie chỉ khi nào một kiểu riêng của thiết bị hỗ trợ cookie. ASP.NET Framework duy trì một cơ sở dữ liệu tùy thuộc khả năng thiết bị trong thiết lập của các file chứa đựng theo đường dẫn sau:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\BrowsersBởi mặc định ASP.NET Framework không bao giờ sử dụng xác thực cookieless với một trình duyệt như là IE. Nếu bạn muốn ASP.NET Framework tự động phát hiện trình duyệt có hỗ trợ cookie hay không thì bạn thiết lập thuộc tính cookieless có giá trì là AutoDetect.
Listing 2.2
Mã:
2.1.3 Sử dụng sự hết hạn trượt với Forms AuthenticationBởi mặc định Forms Authentication sử dụng các hgiải quyết trượt hết hạn, Người sử dụng không yêu cầu trang trong vòng 30 phút, trang sẽ tự động đăng xuất.Nếu bạn có yêu cầu bảo mật đúng đắn, bạn có thể sử dụng giải pháp thời hạn tuyệt đối thay cho trượt thời hạn. Trong trường hợp này, bạn có thể hiệu lực một người sử dụng đăng nhập lại sau một khoảng thời gian riêng.
Listing 2.3
Mã:
2.1.4 Sử dụng Forms authentication ngang qua ứng dụngTrong phần trước bạn được học chia sẻ xác thực cookie qua các ứng dụng khác nhau trong cùng server hoặc server khác nhau, trong phần này bạn sẽ học cách chia sẻ xác thực cookie qua như domain.Một cookie trình duyệt luôn quan hệ với domain, Vi dụ website Amazon không thể đọc cookie thiết lập bởi website itechpro hoặc vietnamnet. Tuy nhiên bạn có thể khám phá rằng bạn cần chia sẻ thông tin xác thực qua nhiều website với nhiều domain khác nhau.Bạn có thể làm việc quanh vấn đề này bởi việc truyền thẻ xác thực trong một chuỗi truy vấn hơn là trong một cookie Không có gì ngăn cản bạn truyền tham số qua các domain khác nhau.Để có thể cho phép trong ngữ cảnh này, bạn phải cấu hình ứng dụng của bạn chấp nhận thẻ xác thực được truyền trong chuỗi truy vấn, như ví dụ sau:
Listing 2.4 web4.config
Mã:
Nếu bạn cấu hình như Listing 2.4 cho phép hai ứng dụng khác nhau định vị trên các domain khác nhau, hai ứng dụng khác nhau có thể chia sẻ thẻ kiểm chứng khác nhau.Khi bạn liên kết hoặc chuyển san trang từ một trang khác bạn phải truyền thẻ kiểm chứng này trong chuỗi tham số truy vấn
Listing 2.5 QueryStringAuthenticate.aspx
Mã:
    void Page_Load()    {        string cookieName = FormsAuthentication.FormsCookieName;        string cookieValue = FormsAuthentication.GetAuthCookie(User.Identity.Name, false).Value;        lnkOtherDomain.NavigateUrl += String.Format("?{0}={1}", cookieName, cookieValue);    }    Untitled Page                        
2.1.5 Sử dụng Lớp FormsAuthenticationGiao tiếp lập trình ứng dụng chính cho tương tác với kiểm chứng Forms là lớp FormsAuthentication Lớp này hỗ trợ các thuộc tinh sau:• CookieDomain: Trả về domain kết hợp với cookie xác thực• CookieMode: Trả về kiểu xác thực cookieless. Có thể là các giá trị: AutoDetect, UseCookies, UseDeviceProfile, and UseUri.• CookiesSupported: Trả về đúng khi trình duyệt hỗ trợ cookie và xác thực Forms được cấu hình để sử dụng cookies.• DefaultUrl: Trả về URL của trang mà người sử dụng được chuyển tới sau khi được kiểm chứng.• EnableCrossAppRedirects: Trả về true khi thẻ kiểm chứng có thể gỡ bỏ từ chuỗi truy vấn• FormsCookieName: trả về tên của cookie xác thực• FormsCookiePath: Trả về đường dẫn kết hợp với cookie kiểm chứng.• LoginUrl: trả về URL của trang mà người sử dụng được chuyển tới khi sẽ được kiểm chứng.• RequireSSL: Trả về đúng khi cookie kiểm chứng phải được truyền thông với SSL.• SlidingExpiration: Trả về True khi cookie kiểm chứng sử dụng chính sách trượt quá hạn.Các thuộc tính này trả về các thiết lập cấu hình trong file web.configLớp FormsAuthentication hỗ trợ các phương thức sau:• Authenticate: Cho phép bạn kiểm tra lại UserName và Password dựa vào một danh sách UserName và Password được lưu trữ trong file web.config.• Decrypt: cho phép bạn giải mã một cookie xác thực• GetAuthCookie: Cho phép bạn lấy thông tin cookie xác thực.• GetRedirectUrl: Cho phép bạn lấy thông tin đường dẫn trang ban đầu gây ra chuyển tới trang Login.aspx.• HashPasswordForStoringInConfigFile: Cho phép bạn lưu trữ một mật khẩu mà nó có thể được lưu trữ trong file web.config.• RedirectFromLoginPage: Cho phép bạn chuyển người sử dụng quay trở lại trang ban đầu được yêu cầu trước khi người sử dụng được chuyển tới trang Login.aspx.• RedirectToLoginPage: cho phép chuyển người sử dụng tới trang Login.aspx• RenewTicketIfOld: Cho phép bạn cập nhật thời gian hết hạn của cookie kiểm chứng.• SetAuthCookie: Cho phép bạn tạo và đưa ra một cookie kiểm chứng.• SignOut: Cho phép bạn gỡ bỏ một cookie kiểm chứng và đăng xuất người sử dụng.Bạn có thể sử dụng các phương thức và thuộc tính của lớp FormsAuthentication để xây dựng người đăng ký sử dụng và hệ thống kiểm chứng ngoài việc sử dụng ASP.NET Menbership. Ví dụ Listing 2.6 chứa đựng một danh sách tên sử dụng và mật khẩu 
Listing 2.6 web6.config
Mã:
Listing 2.6 chứa đựng thành phần forms mà chứa đựng thành phần credentials. credentials bao gồm một danh sách UserName và Password.Chú ý rằng thành phần credentials chứa một thuộc tính PasswordFormatmà được thiết lập với giá trị Clear, Nếu bạn thích lưu trữ mật khẩu trong Text hơn bạn có thể lưu trữ mật khẩu trong các giá trị hash, Với con đường đó thì bất cứ ai trên webserver không thể nhìn thấy mật khẩu của người khác. Trường hợp 2 giá trị của PasswordFormat có thể là MD5 và SHA1.
Listing 2.7 FormsLogin.aspx
Mã:
    protected void btnLogin_Click(object sender, EventArgs e)    {        if (FormsAuthentication.Authenticate(txtUserName.Text,txtPassword.Text))            FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, chkRememberMe.Checked);        else            lblError.Text = "Invalid user name/password";    }    Đăng nhập hệ thống                                                                                                                        
Khi bạn nhấn vào nút Button Login, hàm btnLogin_Click() được thực thi và phương thức FormsAuthentication.Authenticate() được sử dụng để kiểm tra tên sử dụng và mật khẩu nhập trong Textbox có trong fike web.config không. Nếu người sử dụng xác thực thành công thì phương thức FormsAuthentication.RedirectFromLoginPage() được gọi.Phương thức RedirectFromLoginPage() làm hai việc: thêm một cookie xác thực vào trình duyệt của người sử dụng và chuyển ngươi sử dụng tới trang đầu tiên bị chuyển sang trang Login.aspx. Nếu người sử dụng yêu cầu trực tiếp trang Login.aspx thì nó sẽ chuyển về trang Default.aspx.Tham số thứ 2 truyền tới phương thức RedirectFromLoginPage() cho biết có bạn có muốn sử dụng một session hay một persistent cookie hay không. Nếu bạn tạo một persistent cookie thì bạn không cần phải đăng nhập trang web khi bạn trở lại trong một thời gian sau đó.2.1.6 Sử dụng lớp UserBạn có thể sử dụng thuộc tính Page.User hoặc HttpContext.User để lấy thông tin về người sử dụng hiện tại. Thuộc tính Page.User đưa ra một đối tượng Principal mà hỗ trợ phương thức sau:IsInRole: Cho phép kiểm tra người sử dụng có phải là một thành viên của Role riêng hay không. Ví dụ Khi Windows Authentication được cho phép, bạn có thể sử dụng phương thức IsInRole để kiểm tra người sử dụng có phải là thành viên của nhóm riêng trong MS Windows như là nhóm BUILTIN\Administrators hay không?if (User.IsInRole(“BUILTIN\Administrators”)){// thực hiện công việc của quản trị viên hệ điều hành}Đối tượng Principal chỉ bao gồm một thuộc tính Identity cho phép bạn lấy thông tin về đặc tính của người sử dụng hiện tại. Đối tượng Indentity hỗ trợ ba thuộc tính sau:AuthenticationType: cho phép bạn xác định người sử dụng được kiểm chứng như thế nào có thể là các giá trị: Forms, Basic, và NTLM.IsAuthenticated: cho phép bạn xác định ngưởi sử dụng có được kiểm chứng hay không.Name: cho phép lấy thông tin tên của người sử dụng.

File đính kèm:

  • docGiáo trình ASP.NET nâng cao.doc