Ngôn ngữ ASP.NET - Form Authentication
Form-Based 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 của một trang web!
Cách giao tiếp giữa trang web và user
- Cá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 web developer.
- Forms 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 authentication
- Cookie được tạo ra để tracking user xuyên suốt ứng dụng
- Nếu user yêu cầu một trang secure và chưa login, thì họ sẽ được redirect đến Login page
- Một khi user đã thành công việc xác nhận, user sẽ được chuyển đến trang request trước.
Cài đặt form authentication cơ bản
- Trang Login.aspx, web.config và các trang aspx khác
- Forms Authentication tiêu chuẩn sẽ chứa tất cả thông tin của user trong web.config.
Các thuộc tính trong web.config
Tạo một ứng dụng Web App đơn giản minh họa sử dụng Forms Authentication
- Trang login.aspx: để đăng nhập
- Trang 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
vTrang Login.aspx
Code behind Login.aspx.cs
protected 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!";
}
vTrang SecurePage.aspx
Hiển thị thông tin user đăng nhập, chức năng logout.
vCấu hình file web.config
<configuration>
<system.web>
<customErrors mode="Off"/>
<authentication mode="Forms">
<forms name="appNameAuth" loginUrl="~/formauthentication/Login.aspx" timeout="30">
<credentials passwordFormat="Clear">
<user name="teo" password="teo" />
<user name="admin" password="admin" />
</credentials>
</forms>
</authentication>
</system.web>
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>
Chạy web trực tiếp trang SecurePage.aspx trở về trang Login.aspx
Nhập username và password không tồn tại trong file web.config, thông báo lỗi sau:
Đăng nhập thành công sẽ chuyển qua trang SecurePage.asp: