Gửi bởi
sunflower
Để tạo trang đăng nhập thì phải lưu trữ dữ liệu về người dùng để kiểm tra. Ở đây xài SQL 2000 và dữ liệu người dùng được lưu trữ như sau.
Mã:
ACCOUNTS ( _USERNAME, _PASSWORD, _ACCESSRIGHT )
Mã:
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"> select _USERNAME, _PASSWORD, _ACCESSRIGHT
from ACCOUNTS
where _USERNAME=@username
GO
Tạo webform đăng nhập gồm label: lblMessages, Textbox: txtUsername, Texbox: txtPassword, Button: btnLogin
Trong web.config bạn thêm vào một node chứa chuổi kết nối cơ sở dữ liệu như sau: (tuỳ máy mà đổi tên cho đúng)
Mã:
<connectionStrings> <add name="CRMDatabase" connectionString="server=(local); Integrated Security=false; uid=sa; pwd=; database=CRMDatabase;" /> </connectionStrings>
Một class Login sẽ làm việc đăng nhập với code như sau:
Mã:
using WCF = System.Web.Configuration.WebConfigurationManager; //gọi sử dụng web.configusing System.Data.SqlClient; /// <summary>/// Summary description for clsLogIn/// </summary>public class clsLogIn{ String strUserName = ""; String strPassword = ""; String strMessage = ""; bool bolIsAdmin = false; bool bolIsLoged = false; public String UserName { set { strUserName = value; } get { return strUserName; } } public String Password { set { strPassword = value; } get { return strPassword; } } public String Message { set { strMessage = value; } get { return strMessage; } } public bool IsAdmin { //set { bolIsAdmin = value; } get { return bolIsAdmin; } } public bool IsLoged { //set { bolIsLoged=value;} get { return bolIsLoged; } } public clsLogIn(string username, string password) { strUserName = username; strPassword = password; LogIn(); } private void LogIn() { Method clsMT = new Method(); String strCon = WCF.ConnectionStrings["CRMDatabase"].ConnectionString; SqlConnection myCon = new SqlConnection(strCon); myCon.Open(); SqlCommand myCommand = new SqlCommand(); myCommand.CommandText = "sp_LogInCRM"; myCommand.Parameters.Add("@username", UserName); myCommand.CommandType = CommandType.StoredProcedure; myCommand.Connection = myCon; SqlDataAdapter myAdapter = new SqlDataAdapter(myCommand); DataTable myDataTable = new DataTable(); myAdapter.Fill(myDataTable); if (myDataTable.Rows.Count == 0) { bolIsLoged = false; strMessage = "Tên đăng nhập không đúng!!!!"; } else if (myDataTable.Rows[0][1].ToString() != strPassword) { bolIsLoged = false; strMessage = "Mật khẩu không đúng!!!!"; } else { bolIsLoged = true; if (myDataTable.Rows[0][2].ToString() == "ADMIN") bolIsAdmin = true; } }}
Trong trang đăng nhập tại code behind bạn viết code để thực thi việc đăng nhập như sau:
Mã:
protected void btnLogIn_Click(object sender, EventArgs e) { clsLogIn objUser = new clsLogIn(txtUserName.Text.Trim(), txtPassword.Text.Trim()); if (objUser.IsLoged) { Session["sesLogin"] = objUser; Response.Redirect("HomePage.aspx"); //Nếu đúng tên đăng nhập và mật khẩu thì gọi trang HomePage.aspx hiển thị } else { lblMessages.Text = objUser.Message; //Thông báo lỗi ra màn hình } }
Nếu thích thì có thêm mấy hàm mã hoá và giải mã cái password</div>
</div>
</div>
</div>Mình cũng làm như bạn, nhưng khi thử chương trình thì lại báo lỗi:
public clsLogIn(string username, string password)
lý do: CS1520: Method must have a return type
bạn giúp mình giải thích lỗi này với.
Ngoại trừ một số ít trường hợp rãnh mũi - má và “râu rồng silicon” xuất hiện sớm, có khi từ tuổi thanh niên do cơ địa, còn lại, đại đa số do căn do lão hoá đã gây nên ba diễn biến: Giảm mô xương gò...
Cách thẩm mỹ má ở tuổi trung niên...