Đề Xuất 5/2022 # Đăng Nhập Và Phân Quyền Cơ Bản Trong C# Với Csdl Sql Server # Top Like

Xem 76,725

Cập nhật nội dung chi tiết về Đăng Nhập Và Phân Quyền Cơ Bản Trong C# Với Csdl Sql Server mới nhất ngày 23/05/2022 trên website Jetstartakeontheworld.com. Hy vọng thông tin trong bài viết sẽ đáp ứng được nhu cầu ngoài mong đợi của bạn, chúng tôi sẽ làm việc thường xuyên để cập nhật nội dung mới nhằm giúp bạn nhận được thông tin nhanh chóng và chính xác nhất. Cho đến nay, bài viết này đã thu hút được 76,725 lượt xem.

--- Bài mới hơn ---

  • Ba Cách Truyền Dữ Liệu Giữa Các Form Trong Windows Form C#
  • Làm Thế Nào Để Gửi Các Tập Tin Lớn Như File Đính Kèm Của Gmail
  • Đọc Ghi File Trong C
  • Làm Việc Với Tập Tin Nhị Phân Trong C/c++
  • Cách Tạo & Mở File Midi Trên Các Thiết Bị Di Động (Android/ios, Macos, Windows)
  • Phân quyền là một trong những bước rất quan trọng sau đăng nhập. Trong bài viết này mình sẽ hướng dẫn bạn cách phân quyền hạn dựa theo nhóm quyền, và tùy chỉnh chức năng của nhóm quyền hạn dựa vào mã định nghĩa thao tác.

    Thiết kế cơ sở dữ liệu phân quyền

    • tbl_user: bảng lưu người dùng bao gồm các thuộc tính như ID, Name, Username, Password. Bảng không có khóa ngoại.
    • tbl_permision: bảng chứa nhóm quyền hạn. bao gồm các thuộc tính, ID nhóm quyền hạn, tên nhóm quyền hạn, và mô tả nhóm quyền hạn.
    • tbl_per_relationship: là bảng lưu mối liên hệ giữa người dùng và nhóm quyền hạn. Mục đích của bảng này không phải là để một người dùng có nhiều nhóm quyền mà để không phải truy vấn lại bảng user chứa thông tin nhạy cảm như username và password. Bạn cũng có thể bỏ qua bảng này và liên hệ trực tiếp giữa bảng user và permision luôn, nhưng mình khuyên bạn nên sử dụng thêm bảng này thì tốt hơn.
    • tbl_permision_detail: là bảng sẽ chứa những quyền hạn cụ thể dành cho nhóm quyền hạn. thật ra trường này bạn có thể bỏ dòng name_action thì nó không cần thiết lắm. Dòng code_action là để khi lập trình mình định nghĩa một thao tác nhất định trong bằng code này ví dụ quyền sửa thì code nó là EDIT chẳng hạn.

    Tạo form đăng nhập

    Quyền hạn phải được khởi tạo ngay từ đầu khi người dùng đăng nhập. và đây sẽ là bước duy nhất truy vấn đến bảng User chứa username và password của người dùng.

    Bây giờ mình sẽ viết hàm login cơ bản để lấy ID người dùng.

    Bước 1: Using System.Data.SqlClient;

    Bước 2: Tạo hàm lấy ID:

    Trước khi tạo hàm, mình cần tạo biến connection đến database bằng đoạn code sau:

    SqlConnection con = new SqlConnection(@"Data Source=TECHMACSQLEXPRESS;Initial Catalog=db_QL;Integrated Security=True");

    Cách lấy chuỗi connect bạn có thể xem lại bài: Thêm, đọc, sửa, xóa (CRUD) cơ sở dữ liệu SQL Server trong C#

    Hàm lấy ID người dùng.

    private string getID(string username, string pass) { string id = ""; try { con.Open(); SqlCommand cmd = new SqlCommand("SELECT * FROM tbl_user WHERE user_name ='"+username+"' and pass='"+pass+"'",con); SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); da.Fill(dt); if(dt != null) { foreach (DataRow dr in dt.Rows) { id = dr.ToString() == "False") { id = dr.ToString());

    }

    }

    }

    catch (Exception)

    {

    MessageBox.Show(“Lỗi xảy ra khi truy vấn dữ liệu hoặc kết nối với server thất bại !”);

    }

    finally

    {

    con.Close();

    }

    return termsList;

    }

    Bây giờ mình sẽ thêm một mẫu csdl như sau:

    Bây giờ thì mình sẽ tạo một hàm để trả về giá trị True hoặc False khi có yêu cầu quyền hạn.

    Trước khi thực hiện bạn cần tạo ra một biến list dùng chung list_detail để lưu những code_acction mà csdl trả về. Sau đó trong hàm load form bạn gán biến này vào lệnh gọi hàm list_per(id_per(frm_login.ID_USER)); ở đây mình gọi lần 2 hàm lồng nhau. Câu lệnh cụ thể như sau:

    private void frm_main_Load(object sender, EventArgs e)

    {

    list_detail = list_per(id_per(frm_login.ID_USER));

    }

    Làm như thế này thì mình sẽ không mất công truy vấn trở lại, hàm list_detail sẽ giữ các code_action giúp mình kiểm tra khi cần nhanh chóng hơn.

    Đã có danh sách quyền hạn của người đó, bây giờ sử dụng như thế nào.

    Mình sẽ tạo ra một hàm nữa, hàm này sẽ cho phép truyền vào code_action, và duyệt trong mãng để kiểm tra, sau đó trả về giá trị boolean (true,false). Hàm này mình viết như sau:

    private Boolean checkper(string code) { Boolean check = false; foreach (string item in list_detail) { if(item==code) { check = true; } } return check; }

    {

    if (checkper(“EDIT”) == true)

    {

    MessageBox.Show(“có quyền”);

    }

    else

    {

    MessageBox.Show(“Bạn không có quyền”);

    }

    }

    --- Bài cũ hơn ---

  • Cách Nén File Nhỏ Nhất Bằng 7
  • Cách Trồng, Chăm Sóc Và Tạo Dáng Bonsai Cây Si, Cây Sanh
  • Chia Sẻ Cách Tạo Dáng Cây Kiểng Thác Nước Như Nghệ Nhân Cây Cảnh
  • Cách Tạo Dáng Bonsai Từ Cây Phôi
  • Hướng Dẫn Giâm Cành, Chọn Cây Phôi, Tạo Dáng Và Nhân Giống Cây Cảnh
  • Bạn đang đọc nội dung bài viết Đăng Nhập Và Phân Quyền Cơ Bản Trong C# Với Csdl Sql Server trên website Jetstartakeontheworld.com. Hy vọng một phần nào đó những thông tin mà chúng tôi đã cung cấp là rất hữu ích với bạn. Nếu nội dung bài viết hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!

  • Web hay
  • Links hay
  • Push
  • Chủ đề top 10
  • Chủ đề top 20
  • Chủ đề top 30
  • Chủ đề top 40
  • Chủ đề top 50
  • Chủ đề top 60
  • Chủ đề top 70
  • Chủ đề top 80
  • Chủ đề top 90
  • Chủ đề top 100
  • Bài viết top 10
  • Bài viết top 20
  • Bài viết top 30
  • Bài viết top 40
  • Bài viết top 50
  • Bài viết top 60
  • Bài viết top 70
  • Bài viết top 80
  • Bài viết top 90
  • Bài viết top 100