Share Code Web - Chia sẻ niềm đam mê bất tận > Lập trình > ASP/ASP.Net > Học Asp.net qua project cụ thể – Online Diary – Ngày 3
Học Asp.net qua project cụ thể – Online Diary – Ngày 3
Nguyễn Trung Hiếu
Share Code Web Company 2012

Học Asp.net qua project cụ thể – Online Diary – Ngày 3

Ngày hôm nay sẽ đi sâu vào từng trang quan trọng và cho biết chúng tương tác với nhau như thế nào, cũng như chúng sử dụng các lớp trong tầng nghiệp vụ ra sao. Ở bài này chúng ta cùng đi xây dựng trang đăng nhập nhé!

Từ phần này trở đi chúng ta sẽ không đi chi tiết phân tích từng dòng code, mà đi theo hướng chức năng, trình bày theo từng quy trình, chẳng hạn như quy trình đăng ký….
Chúng ta bắt đầu với tổng quan về file và cấu trúc file trong project của chúng ta.
I. Cấu trúc website
online diary
Bảy lớp được lưu trữ trong mục App_Code. Thư mục App_Data chứa hai CSDL: CSDL đăng nhập (ASPNETDB.MDF) và CSDL OnlineDiary(DiaryDB.MDF). Các trang cần phải đăng nhập trước khi xem được lưu trong thư mục SecureDiary. Thư mục gốc chứa các trang đăng nhập, đăng ký, lấy lại mật khẩu. Về cơ bản thì chúng ta cần phải đăng nhập thì mới có thể xem được mọi thứ.
II. Đăng ký, đăng nhập và bảo mật
Ứng dụng Online Diary của chúng ta sử dụng các điều kiểm đăng nhập có sẵn để giúp tiết kiệm thời gian hơn

  • Login: Cho phép đăng nhập, xác nhận tên người dùng và mật khẩu
  • LoginView: Cho phép hiển thị các template khác nhau dựa vào trạng thái người dùng có đăng nhập hay không cũng như vai trò thành viên của người đó
  • PasswordRecovery: Cung cấp chức năng nhắc lại mật khẩu cho người dùng quên mật khẩu
  • LoginStatus: HIển thị trạng thái người dùng, đăng nhập hay đăng xuất
  • LoginName: Hiển thị tên người dùng hiện tại
  • CreateUserWizard: Tạo người dùng mới trong vài bước đơn giản
  • ChangePassword: Cho phép thay đổi mật khẩu

1. Đăng nhập
Trang SignOn.aspx chứa một điều kiểm Login. CSDL người dùng được tạo bằng các công cụ quản trị website. Khi hoàn tất ta có 1 CSDL tên ASPNETDB.MDF trong project.
Mã nguồn của control như sau:

Thuộc tính quan trọng cần lưu ý là DestinationPageUrl. Thuộc tính này sẽ xác định người dùng sẽ chuyển đến đâu khi họ nhập đúng UserName và Password.Trường hợp người dùng chưa có tài khoản thì đã có thuộc tính CreateUserUrl, đưa họ đến trang đăng ký. Và trường hợp người dùng quên mật khẩu thì có thuộc tính PasswordRecoveryUrl đưa người dùng đến trang lấy lại mật khẩu.
Mã lệnh duy nhất mà bạn cần viết trong sự kiện LoggedIn của control Login khi người dùng nhập tên và mật khẩu thành công:

Sự kiện này sử dụng tên ngừoi dùng để tìm DiaryId của người dùng trong csdl online Diary. Sau đó DiaryId được gán cho Session.
2. Đăng ký
Trang RegisterStart.aspx sử lý việc đăng ký người dùng mới. Giống như trang SignOn.aspx. Trang này sử dụng Control CreateUserWizard

Đoạn code này nhìn có vẻ dài dòng nhưng hầu hết là thiết lập style cho trang này. Thuộc tính mà bạn cần quan tâm là FinishDestinationPageUrl. Đây là trang người dùng chuyển đến khi đăng ký hoàn tất.
CreateUserWizard hoạt động dựa trên cơ chế từng bước một. Phải có ít nhất một bước cho phép người dùng nhập tên đăng nhập và mật khẩu.
online diary
Bước thứ hai được hiển thị sau khi người dùng đăng ký hoàn tất
online diary
Màn hình này yêu cầu nhập tên và người dùng. Khi đó, tùy bạn lưu dữ liệu ở đâu, quan trọng là code trong nút button FinishButtonClick của CreateUserWizard

Bước này tạo một nhật ký mới và lưu họ tên người dùng. UserName được lấy từ thuộc tính UserName trong điều kiểm trên.
3. Nhắc lại mật khẩu
Bạn có thể tạo tính năng nhắc lại mật khẩu bằng điều kiểm PasswordRecovery. Bạn viết mã cho sự kiện SendingMail như sau

Sự kiện sendingMail phát sinh khi người dùng nhấn nút gửi email, và hiển thị liên kết trở về màn hình đăng nhập. Bạn cần cấu hình SMTP server để gửi email nhắc mật khẩu. Khi SMTP được cài đặt bạn thêm đoạn mã sau vào giữa thẻ < configuration > trong web.config

Related Posts

Tác giả: Nguyễn Trung Hiếu

Một blogger ... cùi bắp! Đơn giản: tôi muốn ghi lại những gì xảy ra xung quanh, cả công việc lẫn cuộc sống và chia sẻ với các bạn đọc. Nếu bạn cảm thấy bài viết có nhiều điểm không chính xác, hãy comment và chia sẻ để tôi còn được học hỏi từ những góp ý của bạn. Email: hieunt.dcn@gmail.com

Leave a comment

Bạn phải Đăng nhập để tham gia bình luận.

https://sharecodeweb.net/?s={search_term_string}

Blog Stats

  • 5.702 hits
%d bloggers like this: