Kĩ thuật lập trình - Forms authentication

Việc sử dụng chức năng login rất thường phổ biến trong ứng dụng web. Hạn chế user truy cập vào vùng secure User đã đăng ký mới có quyền sử dụng các chức năng Post bài, download, comment Xây dựng ứng dụng web với chức năng login cũng không quá khó khăn. Từ việc cho phép user truy cập một trang nào đó, hoặc những chỉ những chức năng nào đó của một trang web

pptx25 trang | Chia sẻ: thuychi16 | Lượt xem: 759 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Kĩ thuật lập trình - Forms authentication, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Nguyễn Hà GiangForms AuthenticationNguyen Ha Giang1Nội dungForms Authentication?Cách thức thực thiDemo minh họa.2Nguyen Ha GiangAuthenticationViệc sử dụng chức năng login rất thường phổ biến trong ứng dụng web.Hạn chế user truy cập vào vùng secureUser đã đăng ký mới có quyền sử dụng các chức năngPost bài, download, commentXây dựng ứng dụng web với chức năng login cũng không quá khó khăn. Từ việc cho phép user truy cập một trang nào đó, hoặc những chỉ những chức năng nào đó của một trang web3Nguyen Ha GiangAuthenticationGiao tiếp giữa trang web và user4Nguyen Ha GiangWeb AppAdmin pagePublic pageYêu cầu loginUsersAuthenticationCác chức năng Authentication được ASP.NET hỗ trợ. Forms Authentication thường được đề cập do tính tiện dụng của nó.Forms Authentication cho phép developer lưu trữ thông tin xác thực như username, pass trong file web.config, hoặc trong database, XML file, text fileĐiều quan trọng là form authentication sẽ làm những công việc state-tracking cho developer.5Nguyen Ha GiangAuthenticationForms Authentication sử dụng cookie cho phép ứng dụng tracking user qua những lần request.Cách xử lý của Forms Authentication cũng tương tự như cách xử lý trong ASP.Khi user login thông qua form authenticationCookie được tạo ra để tracking user xuyên suốt ứng dụngNếu user yêu cầu một trang secure và chưa login,  sẽ được redirect đến Login pageMột khi user đã thành công việc xác nhận, user sẽ được chuyển đến trang request.6Nguyen Ha GiangAuthentication7Nguyen Ha GiangCài đặt form authentication cơ bảnTrang login.aspx, web.config và các trang aspx khácForms Authentication tiêu chuẩn sẽ chứa tất cả thông tin của user trong web.config.8Nguyen Ha GiangAuthenticationThuộc tínhMô tảNameTên của cookie sử dụng form authenticationLoginUrlURL khi user chưa đăng nhập sẽ được gởi đến DefaultUrlTrang mặc định chuyển đến sau khi sign inTimeoutThời gian để cookie hết hạnWeb.configCài đặt form authentication cơ bảnCấu hình Web.config9Nguyen Ha GiangCredentialThuộc tínhMô tảPasswordFormatĐịnh dạng cho password: clear, SHA1, MD5UserLưu trữ thông tin về user name & passAuthorizationDeny | AllowTừ chối hoặc cho phép truy cập trang nào đóWeb.configCài đặt form authentication cơ bản10Nguyen Ha Giang Web.ConfigTừ chối anonymous truy cậpCài đặt form authentication cơ bảnMã hóa chuỗi password trong credential.11Nguyen Ha Giang Minh họa sử dụng Forms AuthenTạo một ứng dụng Web App đơn giản minh họa sử dụng Forms AuthenticationTrang Login.aspx: để đăng nhậpTrang SecurePage.aspx: là trang được bảo vệ, chỉ có user có quyền mới có thể vào được.File cấu hình Web.config để cấu hình Forms Authentication.12Nguyen Ha GiangMinh họa sử dụng Forms AuthenTrang login.aspx13Nguyen Ha Giangprotected void btnLogin_Click(object sender, EventArgs e) { if ( FormsAuthentication.Authenticate(txtUserName.Text, txtPassword.Text)) FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, true); else // hiển thị lên label của login page lblInfo.Text = "Đăng nhập không thành công!"; }Minh họa sử dụng Forms AuthenTrang SecurePage.aspxHiển thị thông tin user đăng nhập, chức năng logout.14Nguyen Ha GiangLoginName LoginStatusSử dụng hai control LoginName và LoginStatusMinh họa sử dụng Forms AuthenFile cấu hình Web.config15Nguyen Ha GiangMinh họa sử dụng Forms AuthenChạy thử nghiệm: truy cập URL của trang SecurePage16Nguyen Ha GiangMinh họa 2Trong minh họa 1: Thông tin username, password được lưu trong file web.config (đôi khi bất tiện!)Tất cả các trang của ứng dụng đều phải yêu cầu đăng nhậpMinh họa 2:Thông tin username, password lưu bên ngoài file config.Không phải toàn bộ các trang đều yêu cầu đăng nhập!17Nguyen Ha GiangMinh họa 2Tạo các trangIndex.aspxLogin.aspxSecurePage.aspxpublicPage.aspxWeb.config18Nguyen Ha GiangMinh họa 2Tạo trang login.aspx19Nguyen Ha Giangprotected bool CheckUser(string user, string pass){ // phần check user này ta có thể truy xuất database, // file xml, file text để lấy thông tin account. //Phần demo nên ta hardcode :D luôn! if (user == "giang" && pass == "giang123") return true; return false;}protected void btnLogin_Click(object sender, EventArgs e){ if ( CheckUser( txtUserName.Text, txtPassword.Text) ) FormsAuthentication.RedirectFromLoginPage( txtUserName.Text, true ); else lblInfo.Text = "Đăng nhập không thành công!";}Lưu ý: Hàm CheckUser thực tế sẽ kiểm tra thông tin đăng nhập từ DB hoặc file bên ngoàiMinh họa 2Phần trang SecurePage.aspx tương tự minh họa 1Tạo page mới đặt tên PublicPage.aspxTrang này chỉ chứa dòng thông báo là “Trang public”20Nguyen Ha Giang Trang này được bảo vệ Minh họa 2Phần cấu hình config.21Nguyen Ha Giang Minh họa 2Tạo trang index.aspxTrang này chứa các link đến 2 trangSecurePage.aspxPublic.aspx. 22Nguyen Ha GiangIndex.aspxMinh họa 2Chạy thử nghiệm23Nguyen Ha GiangYêu cầu đăng nhậpVào bình thườngTóm tắtTìm hiểu được cơ chế Authentication dạng FormsCấu hình file Web.config để lưu thông tin AuthenticationUsername, passwordAuthorizationMinh họa được cách thức sử dụng được authentication trong ứng dụng ASP.NETThực thi các trang yêu cầu authentication và các trang không cần authentication 24Nguyen Ha GiangBài tậpSinh viên làm lại bài minh họa 2 với thông tin account được lưu trong cơ sở dữ liệu SQL Server.Bổ sung phần Authentication cho các ứng dụng ASP.NET mà bạn đã viết trước đây.25Nguyen Ha Giang