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!!
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
-
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.
-
Originally posted by haucanpop6590 View PostThự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?
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à xongKhông có gì là không thể nếu chúng ta có lòng tin.
http://gabrielbl.com
Comment
-
Originally posted by 09520548 View PostBạ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
Comment
Comment