Announcement

Collapse
No announcement yet.

Xử lý phân quyền cho số lượng lớn người dùng trong C#

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Xử lý phân quyền cho số lượng lớn người dùng trong C#

    Ai giúp mình ý tưởng làm cái này được không? Ví dụ mình có phần mềm có 5modul ngoài account admin toàn quyền ra sử dụng 5modul ra mình muốn phân quyền cho 1 user được quyền truy cập chỉ một chức năng trong modul (ví dụ 1modul có 10 chức năng) như vậy ta phải code phân quyền và hiển thị 50 kiểu khác nhau cho từng user. Nếu vậy để sửa code thì quá vất vả. Nếu có khoảng 20modul thì chắc bó tay. Ai có giải pháp nào cho việc phân chia quyền sử dụng các chức năng trong phần mềm không giúp mình với!!! Thanks!!

  • #2
    Bảng user có 1 cột auth.
    Bảng auth gồm ID, auth_name
    Bảng auth_details gồm ID, auth_ID, auth_text, value

    Giả sử user Mod có quyền vào mục A và mục B

    Bảng user có thông tin về user Mod này, và auth của user Mod này là 3
    Bảng auth có 1 record ID=3, auth_name=moderator (tên để cho vui)
    Bảng auth_details có 2 record như sau:
    - ID nhiêu cũng được, auth_ID=3, auth_text=A, value=1
    - ID nhiêu cũng được, auth_ID=3, auth_text=B, value=1

    Thiết kế CSDL như vầy là được Khi vào mục A thì check user > lấy auth_ID > check tiếp auth_details xem có được vào mục đó hay không.

    Comment


    • #3
      Thực sự thì mình vẫn chưa hiểu rõ lắm mới sơ sơ ak!! Diễn giải chi tiết 1 síu được ko?

      Comment


      • #4
        Originally posted by haucanpop6590 View Post
        Thực sự thì mình vẫn chưa hiểu rõ lắm mới sơ sơ ak!! Diễn giải chi tiết 1 síu được ko?
        Bạn thiết kế CSDL ở table user thì có một mục là level của user. Dựa vào mục level để biết user đó có mức như thế nào để xác định quyền truy cập của user đó vào module nào. Khi bạn code cấp quyền thì truy cập module thì dựa vào level user mà cấp. Lưu trữ kiểu này cũng dễ dàng cho bạn khi bạn thay đổi quyền của user, chỉ cần thay đổi level là có thể để user đó sử dụng module khác.
        Ví dụ:
        - bạn có 2 user với 1 user có level là 10 và 1 user có level là 5
        - bạn có 2 module với module 1 chỉ cho user có level 10 truy cập, còn module 2 thì cho cả 2 user cùng truy cập
        - việc tiếp theo là tại mỗi module của bạn bạn code cấp quyền dựa vào level của user là xong
        Không có gì là không thể nếu chúng ta có lòng tin.
        http://gabrielbl.com

        Comment


        • #5
          Originally posted by 09520548 View Post
          Bạn thiết kế CSDL ở table user thì có một mục là level của user. Dựa vào mục level để biết user đó có mức như thế nào để xác định quyền truy cập của user đó vào module nào. Khi bạn code cấp quyền thì truy cập module thì dựa vào level user mà cấp. Lưu trữ kiểu này cũng dễ dàng cho bạn khi bạn thay đổi quyền của user, chỉ cần thay đổi level là có thể để user đó sử dụng module khác.
          Ví dụ:
          - bạn có 2 user với 1 user có level là 10 và 1 user có level là 5
          - bạn có 2 module với module 1 chỉ cho user có level 10 truy cập, còn module 2 thì cho cả 2 user cùng truy cập
          - việc tiếp theo là tại mỗi module của bạn bạn code cấp quyền dựa vào level của user là xong
          Uhm thế này dễ hiểu hơn rùi

          Comment

          LHQC

          Collapse
          Working...
          X