Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: làm sao tạo được mã bảo vệ trong trang đăng ký

  1. #1
    Ngày gia nhập
    03 2010
    Nơi ở
    tphcm
    Bài viết
    226

    Thumbs down làm sao tạo được mã bảo vệ trong trang đăng ký

    Mấy anh/chị làm ơn chỉ làm cách làm mã bảo vệ và cách mã hóa mật khẩu khi đăng ký thành viên.Cám ơn nhiều

  2. #2
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    hi. Trước hết mã bảo vệ: cái nè để xác minh là người hay robot.Để dùng cái đó thì bạn xài Captcha.
    Vấn đề mã hóa mật khẩu: người ta hay sử dụng mã hóa 1 chiều MD5. Cái nè trong .net có hỗ trợ sẵn namespace system.sercurity: dùng thế này nè

    viết vào 1 cái class để trong app_code:
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Security.Cryptography;
    4. using System.Text;
    5. public class EncodePassword
    6. {
    7.     public EncodePassword()
    8.     {
    9.     }
    10.     public static byte[] encryptPassword(string data)
    11.     {
    12.         MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
    13.         byte[] hashedBytes;
    14.         UTF8Encoding encoder = new UTF8Encoding();
    15.         hashedBytes = md5Hasher.ComputeHash(encoder.GetBytes(data));
    16.         return hashedBytes;
    17.     }
    18. }
    khi gọi hàm kia bạn làm như sau:
    Visual C# Code:
    1.   strPassword = Convert.ToBase64String(EncodePassword.encryptPassword(strPassword));

  3. #3
    Ngày gia nhập
    04 2010
    Nơi ở
    Trên hành tinh thứ ba tính từ Mặt trời
    Bài viết
    202

    Tạo mã bảo vệ cho trang web thì bạn có thể dùng dịch vụ miễn phí reCAPTCHA: http://www.google.com/recaptcha
    Microsoft Student Partner
    University of Information Technology - VNUHCM
    Visit my blog: My power is my mind

  4. #4
    Ngày gia nhập
    03 2010
    Nơi ở
    tphcm
    Bài viết
    226

    Trích dẫn Nguyên bản được gửi bởi mrfour.it Xem bài viết
    hi. Trước hết mã bảo vệ: cái nè để xác minh là người hay robot.Để dùng cái đó thì bạn xài Captcha.
    Vấn đề mã hóa mật khẩu: người ta hay sử dụng mã hóa 1 chiều MD5. Cái nè trong .net có hỗ trợ sẵn namespace system.sercurity: dùng thế này nè

    viết vào 1 cái class để trong app_code:
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.Security.Cryptography;
    4. using System.Text;
    5. public class EncodePassword
    6. {
    7.     public EncodePassword()
    8.     {
    9.     }
    10.     public static byte[] encryptPassword(string data)
    11.     {
    12.         MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
    13.         byte[] hashedBytes;
    14.         UTF8Encoding encoder = new UTF8Encoding();
    15.         hashedBytes = md5Hasher.ComputeHash(encoder.GetBytes(data));
    16.         return hashedBytes;
    17.     }
    18. }
    khi gọi hàm kia bạn làm như sau:
    Visual C# Code:
    1.   strPassword = Convert.ToBase64String(EncodePassword.encryptPassword(strPassword));
    Anh có thể giải thích cho em về hàm đó được ko.Em không hiểu.Nếu như em viết trực tiếp không viết trong class được không.Khi txtpass thì nó sẽ mã hóa vào dữ liều

  5. #5
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Viết trực tiếp trong cái class em xài có password cũng được em à. Viết ra ngoài để khi ở class khác muốn dùng gọi cho tiện, khỏi phải copy lại. Md5 là mã hóa một chiều. Do vậy, khi người ta đăng nhập thì e phải mã hóa cái pass họ nhập vào và so sánh với pass đã mã hóa lúc họ đk.

  6. #6
    Ngày gia nhập
    03 2010
    Nơi ở
    tphcm
    Bài viết
    226

    Wink làm sao tạo được mã bảo vệ trong trang đăng ký

    Mấy anh ới làm ơn coi dùm em hàm đăng ký này:
    string chuoikn = "server=localhost;uid=;pwd=;database=webbandt;inte grated security=true;";
    SqlConnection con = new SqlConnection(chuoikn);
    con.Open();
    string chuoitruyvan;
    SqlCommand m = new SqlCommand();
    m.Connection = con;
    m.Parameters.Add("a1",txtHoTen.Text);
    m.Parameters.Add("a2", txtMatKhau.Text);
    m.Parameters.Add("a3", txtDc.Text);
    m.Parameters.Add("a4", txtSoDT.Text);
    m.Parameters.Add("a5",txtEmail.Text);
    chuoitruyvan = "insert into users (hoten.matkhau,diachi,sodt,email) values(a1,a2,a3,a4,a5)";
    m.CommandText = chuoitruyvan;
    try
    {
    m.ExecuteNonQuery();
    lblThongbao.Text = "Đăng nhập thành công";
    }
    catch (Exception ex)
    {
    lblThongbao.Text = "Thông báo lỗi:" + ex.Message;
    }
    con.Close();
    Sao khi bấm đăng ký thì nó báo lỗi như vậy:
    Thông báo lỗi:The name 'a1' is not permitted in this context. Only constants, expressions, or variables allowed here. Column names are not permitted
    Mấy anh/chị làm ơn sửa dùm em.Em cám ơn

  7. #7
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Visual C# Code:
    1. m.Parameters.Add("a1",txtHoTen.Text);
    2. phải là
    3. m.Parameters.Add("@a1",txtHoTen.Text);
    Em ơi! tham số của sql phải có kí tự "@" ở trước.với lại, cái này phải các tham số với tên giống hệt với thủ tục sql e đã viết(không phân biệt hoa thường). Như e viết thế kia là lỗi đó. Cái này có nhiều tài liệu nói mà.
    Hơn nữa. Cái phần đăng ký của em vẫn chưa ổn đâu. Bởi vì khi đăng ký thì phải có bước kiểm tra xem tài khoản tồn tại hay chưa? nếu chưa mới được thêm vào. Nếu có rồi thì phải thông báo cho người ta chọn cái khác.
    Cái câu truy vấnb của em viết trong code là không nên đâu. E nên học cách viết thủ tục, gọi thủ tục rồi truyền tham số. Bởi vì, xài thủ tục tốc độ nhanh hơn viết trong code như e nhiều. Ngoài ra, code của em sẽ sáng sủa hơn. Nếu viết trực tiếp trong code thì cái của em thế là là được:
    a1=txtHoTen.Text.Trim();
    ...
    chuoitruyvan = @"insert into users (hoten.matkhau,diachi,sodt,email)
    values('"+a1+"','"+a2"','"+a3+"','"+a4+"','"+a5+"' )";
    như vậy thì sql nó mới hiểu. Tuy nhiên, e thấy đó, code rất rối+xấu kinh.

  8. #8
    Ngày gia nhập
    03 2010
    Nơi ở
    tphcm
    Bài viết
    226

    Trích dẫn Nguyên bản được gửi bởi mrfour.it Xem bài viết
    Visual C# Code:
    1. m.Parameters.Add("a1",txtHoTen.Text);
    2. phải là
    3. m.Parameters.Add("@a1",txtHoTen.Text);
    Em ơi! tham số của sql phải có kí tự "@" ở trước.với lại, cái này phải các tham số với tên giống hệt với thủ tục sql e đã viết(không phân biệt hoa thường). Như e viết thế kia là lỗi đó. Cái này có nhiều tài liệu nói mà.
    Hơn nữa. Cái phần đăng ký của em vẫn chưa ổn đâu. Bởi vì khi đăng ký thì phải có bước kiểm tra xem tài khoản tồn tại hay chưa? nếu chưa mới được thêm vào. Nếu có rồi thì phải thông báo cho người ta chọn cái khác.
    Cái câu truy vấnb của em viết trong code là không nên đâu. E nên học cách viết thủ tục, gọi thủ tục rồi truyền tham số. Bởi vì, xài thủ tục tốc độ nhanh hơn viết trong code như e nhiều. Ngoài ra, code của em sẽ sáng sủa hơn. Nếu viết trực tiếp trong code thì cái của em thế là là được:
    a1=txtHoTen.Text.Trim();
    ...
    chuoitruyvan = @"insert into users (hoten.matkhau,diachi,sodt,email)
    values('"+a1+"','"+a2"','"+a3+"','"+a4+"','"+a5+"' )";
    như vậy thì sql nó mới hiểu. Tuy nhiên, e thấy đó, code rất rối+xấu kinh.
    Cám ơn anh nhiều.Tại học làm bên access không à chứ không có làm bên sql với lại em không biết viết thủ tục.Nếu được anh có thể chỉ em không.Với lại cái hàm mã hóa làm sao cho nó gọi vào txtMk vì em làm hoài không được

  9. #9
    Ngày gia nhập
    03 2010
    Nơi ở
    tphcm
    Bài viết
    226

    //txtMatKhau.Text = Convert.ToBase64String(EncodePassword.encryptPassw ord(txtMatKhau.Text));
    ccJoin.ValidateCaptcha(txtMabaove.Text);
    if (!ccJoin.UserValidated)
    {
    lblThongbao.Text = "Mã bảo vệ chưa chính xác";
    }
    else
    {
    string chuoiketnoi;
    chuoiketnoi = "server=localhost;uid=;pwd=;database=webbandt;inte grated security=true;";
    SqlConnection c = new SqlConnection(chuoiketnoi);
    c.Open();
    string chuoitruyvan;
    SqlCommand m = new SqlCommand();
    m.Connection = c;
    chuoitruyvan = "select count(*) from users where Email='" + txtEmail.Text + "'";
    m.CommandText = chuoitruyvan;
    int n;
    n = (int)m.ExecuteScalar();
    if (n > 0)
    {

    lblThongbao.Text = "Tên đã có trong danh sách.Hãy nhập lại";
    }
    else
    {
    m.Parameters.Add("@hoten", txtHoTen.Text);
    m.Parameters.Add("@matkhau", txtMatKhau.Text);
    m.Parameters.Add("@diachi", txtDc.Text);
    m.Parameters.Add("@sodt", txtSoDT.Text);
    m.Parameters.Add("@email", txtEmail.Text);
    chuoitruyvan = @"insert into users (hoten,matkhau,diachi,sodt,email)values(@hoten,@ma tkhau,@diachi,@sodt,@email)";
    Response.Redirect("default.aspx");
    m.CommandText = chuoitruyvan;
    }
    try
    {
    m.ExecuteNonQuery();
    }
    catch (Exception ex)
    {
    lblThongbao.Text = "Thông báo lỗi: " + ex.Message;
    }
    c.Close();
    }
    Làm ơn coi dùm dòng code trên sai chỗ nào em mà khi chạy nó không thêm vào sql nhưng không báo lỗi gì hết.

  10. #10
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    hix! e chưa hiểu ý anh rồi. Dùng @ là chỉ cho trường hợp e viết thủ tục và gọi thử tục. @name là tên tham số của thủ tục sql. Khi đó gọi thủ tục sql mới cần truyền vào. code của em viết trực tiếp như vậy thì ko dùng tham số nào cả. viết thế này thui:
    Visual C# Code:
    1.  {
    2.   hoten=txtHoTen.Text;
    3.   matkhau=txtMatKhau.Text;
    4.   diachi=txtDc.Text;
    5.   sodt=txtSoDT.Text;
    6.   email=txtEmail.Text;
    7. chuoitruyvan = @"insert into users (hoten,matkhau,diachi,sodt,email)
    8.        values('"+hoten+"','"+matkhau+"','"+diachi+"','"+sodt+"','"+email+"');";
    9.  //khong dung dong nay o day duoc:vi day la cau lenh chyen page Response.Redirect("default.aspx");
    10.   m.CommandText = chuoitruyvan;
    11. }
    12. {
    13.   m.ExecuteNonQuery();
    14. }
    15. catch (Exception ex)
    16. {
    17.   lblThongbao.Text = "Thông báo lỗi: " + ex.Message;
    18. }
    19.  c.Close();
    20. }

    Em thử thế trước đi.

    Mà nè! a hỏi thật nhé! e học theo sách nào? hay tự mày mò vậy? đó là những kiến thức cơ bản, cso nhiều sách dạy mà.e nên tìm sách hoặc ebook rồi thực hành theo. Tốt nhất là học cách làm việc với thủ tục, Không nên viết code kiểu nè. Những cái cơ bản em không nên hỏi. Bởi vì mọi người cũng sẽ không rảnh rỗi lắm. Hơn nữa, những câu hỏi thế này rất nhàn chán e à. Từ lần sau mà a thấy những câu hỏi kiểu cơ bản thế này sẽ không trả lời đâu.hihi. Tự học là chính e à.

    cố mà cày cuốc nhé.hehe

Các đề tài tương tự

  1. Tạo trang đăng nhập trong ASP.NET với lập trình C#
    Gửi bởi sunflower trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 5
    Bài viết cuối: 05-04-2015, 11:57 AM
  2. Tạo trang đăng nhập trong lập trình C#?
    Gửi bởi sasadudu trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 19-03-2013, 10:59 PM
  3. Tạo Trang Đăng Ký Bằng MVC 3 Trong Asp.net như thế nào?
    Gửi bởi maiyeuem3 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 30-09-2012, 11:44 PM
  4. Trả lời: 6
    Bài viết cuối: 07-05-2012, 09:47 PM
  5. Siêu Phần Mềm: Đăng rao vặt lên 500 trang chỉ trong 10 phút!
    Gửi bởi taikhoan005 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 11-10-2011, 03:53 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn