Ngôn ngữ ASP.NET - Điều khiển Login
Điều khiển Login
Điều khiển Login đưa ra một form đăng nhập tiêu chuẩn. Mặc định điều khiển Login sử dụng ASP.NET MenberShip để kiểm chứng người sử dụng, tuy nhiên bạn có thể tùy chỉnh kiểu kiểm chứng người sử dụng với điều khiển Login. Điều khiển Login hỗ trợ rất nhiều thuộc tính cho phép bạn tùy chỉnh cách hiển thị và ứng xử của điều khiển.
Dưới đây một số thuộc tính, sự kiện của <asp:Login>:
Các thuộc tính Login control
Thuộc tính | Giải thích |
---|---|
TitleText | Hiển thị tiêu đề trang (ví dụ: Đăng nhập). |
InstructionText | Hiển thị nội dung văn bản sau tiêu đề trang web (ví dụ:Vui lòng nhập tài khoản và mật khẩu). |
UserNameLabelText | Tiêu đề nhãn cho username (ví dụ: Tài khoản:). |
PasswordLabelText | Tiêu đề nhãn cho password (ví dụ: Mật khẩu:). |
FailureText | Hiển thị thông báo lỗi, khi đăng nhập thất bại (Ví dụ: Bạn đăng nhập không thành công, Vui lòng thử lại.) |
UserName | Giá trị khỏi tạo cho TextBox của ô username (ví dụ: admin). |
UsernameRequiredErrorMessage | Hiển thị thông báo username bắt buộc nhập (ví dụ:Vui lòng nhập username.) |
LoginButtonText | Gắn nhãn cho nút Login Button (ví dụ: Đăng nhập). |
LoginButtonType | Button/Link/Image. Chọn loại button cho Login Button. |
DestinationPageUrl | Đường dẫn đến trang sau khi đăng nhập thành công. |
DisplayRememberMe | true/false. Hiển thị CheckBox nhớ mật khẩu (ví dụ: Nhớ mật khẩu). |
VisibleWhenLoggedIn | true/false. Nếu false, Control login không hiển thị trên trang web, nếu đăng nhập thành công. |
CreateUserUrl | Đường dẫn đến trang tạo User (Ví dụ: ~/logincontrol/CreateUser.aspx). |
CreateUserText | Nhập nhãn cho Hyperlink tạo user (ví dụ: Đăng ký). |
PasswordRecoveryUrl | Liên kết với trang quên mật khẩu (Ví dụ:~/logincontrol/ForgotPassword.aspx). |
PasswordRecoveryIconUrl | Hiển thị liên kết ForgotPassword.aspx dạng hình. |
PasswordRecoveryText | Nhập nhãn cho Hyperlink cho trang quên mật khẩu (ví dụ: Quên mật khẩu). |
PasswordRequiredErrorMessage | Hiển thị thông báo mật khẩu bắt buộc nhập (ví dụ:Vui lòng nhập mật khẩu.) |
Các định dạng Login Control
Thuộc tính | Giải thích |
---|---|
CheckBoxStyle | Định dạng cho thuộc tính CheckBox Remember Me. |
FailureStyle | Định dạng cho thuộc tính FailureStyle. |
TitleTextStyle | Định dạng cho thuộc tính FailureStyle. |
LoginButtonStyle | Định dạng cho thuộc tính Login button. |
TextBoxStyle | Định dạng cho thuộc tính TextBox. |
LabelStyle | Định dạng cho thuộc tính nhãn của TextBox. |
HyperLinkStyle | Định dạng cho thuộc tính hyperlink . |
InstructionTextStyle | Định dạng nội dung văn bản sau tiêu đề trang web. |
Các sự kiện Login Control
Sự kiện | Giải thích |
---|---|
LoggingIn | Sự kiện xảy ra trước khi user đăng nhập. |
LoggedIn | Sự kiện xảy ra sau khi user đã đăng nhập. |
LoginError | Sự kiện xảy ra sau khi đăng nhập bị lỗi. |
Authenticate | Sự kiện này xác nhận việc đăng nhập của user. Viết code kiểm tra user đăng nhập trong sự kiện này. |
Ví dụ: Dùng điều khiển Login tạo nút đăng nhập
Bước 1: Kéo Listbox từ thanh Toolbox vào trang web
Bước 2: Chọn mẫu cho điều khiển Login
Bước 3: Khai báo các thuộc tính cho điều khiển Login
Bước 4: Cấu hình file web.config, web site đặt trong thư mục logincontrol
<configuration>
<system.web>
<authentication mode="Forms">
<forms name="appNameAuth" loginUrl="~/logincontrol/Login.aspx" timeout="30">
</forms>
</authentication>
</system.web>
<!--MÔ TẢ CÁC TRANG CẦN BẢO VỆ Các trang trong thu mục logincontrol phải đang nhập-->
<location path="logincontrol">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
</configuration>
Code trang Login.aspx :
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="logincontrol_Login" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Login ID="Login1" runat="server" BackColor="#F7F7DE" BorderColor="#CCCC99" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="10pt" CreateUserText="Đăng ký" CreateUserUrl="~/logincontrol/CreateUser.aspx" FailureText="Bạn đăng nhập không thành công, Vui lòng thử lại." InstructionText="Vui lòng nhập tài khoản và mật khẩu" LoginButtonText="Đăng nhập" PasswordLabelText="Mật khẩu:" RememberMeText="Nhớ mật khẩu." TitleText="Đăng nhập" UserNameLabelText="Tài khoản:" DestinationPageUrl="~/logincontrol/Admin.aspx" OnAuthenticate="Login1_Authenticate" PasswordRecoveryText="Quên mật khẩu" PasswordRecoveryUrl="~/logincontrol/ForgotPassword.aspx" PasswordRequiredErrorMessage="Mật khẩu không được rỗng." UserNameRequiredErrorMessage="Tài khoản không được rỗng." Width="402px">
<TitleTextStyle BackColor="#6B696B" Font-Bold="True" ForeColor="#FFFFFF" />
</asp:Login>
</div>
</form>
</body>
</html>
Code Login.aspx.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Web.Security;
public partial class logincontrol_Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
ViewState["LoginErrors"] = 0;
}
private bool CheckAccount(string UserName, string Password)
{
bool boolReturnValue = false;
string strConnection = "Data Source=.;Initial Catalog=QLBANSACH1;Integrated Security=True";
SqlConnection sqlConnection = new SqlConnection(strConnection);
String SQLQuery = "SELECT TenDN, MatKhau FROM KhachHang where TenDN='"+UserName+"' and MatKhau ='"+Password+"' ";
SqlCommand command = new SqlCommand(SQLQuery, sqlConnection);
SqlDataReader Dr;
sqlConnection.Open();
Dr = command.ExecuteReader();
if (Dr.Read())
{
if ((UserName == Dr["TenDN"].ToString()) & (Password == Dr["MatKhau"].ToString()))
{
boolReturnValue = true;
}
Dr.Close();
return boolReturnValue;
}
return boolReturnValue;
}
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
if (CheckAccount(Login1.UserName, Login1.Password))
{
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, true);
e.Authenticated = true;
// Response.Redirect();
Login1.Visible = false;
}
else
{
e.Authenticated = false;
}
}
}
Trong code này tài khoản được kiểm tra trong co sở dữ liệu
Thực thi trang web và nhập tài khoản đăng nhập sai cho kết quả:
Nhập tài khoản đúng: