Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 4 của 4
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Tạo trang đăng nhập trong ASP.NET với lập trình C#

    Để 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 )
    Và dùng một store procedure để truy vấn lấy thông tin người dùng có tên: sp_LogInCRM

    Mã:
    CREATE  proc sp_LogInCRM    @username  varchar(30)as    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

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    cảm ơn bạn rất nhiều, mèo mới học về C# thôi nên chưa hiểu rõ lắm

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn 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.

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Nó báo là phương thức phải có kiểu dữ liệu trả về.
    Bác cop xem lỗi ở chỗ nào chứ, dài thế này thì biết làm sao mà dò.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •