Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Phân Quyền Cho Các Người Dùng

  1. #1
    Ngày gia nhập
    02 2007
    Nơi ở
    Thủ Đức - TPHCM
    Bài viết
    49

    Angry Phân Quyền Cho Các Người Dùng

    Các bạn ơi cho mình hỏi mình đã tạo ra 1 Form đăng nhập rồi ,nhưng mình không biết sử dụng sao cho nó tối ưu được, ý của mình là nếu mình đăng nhập với tài khoản là ADMIN thì dùng được hết chức năng của Form chính ,còn các ueser khác thì không chỉ sử dụng được 1 số chức năng thôi .

  2. #2
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Trích dẫn Nguyên bản được gửi bởi minhitcn2 Xem bài viết
    Các bạn ơi cho mình hỏi mình đã tạo ra 1 Form đăng nhập rồi ,nhưng mình không biết sử dụng sao cho nó tối ưu được, ý của mình là nếu mình đăng nhập với tài khoản là ADMIN thì dùng được hết chức năng của Form chính ,còn các ueser khác thì không chỉ sử dụng được 1 số chức năng thôi .
    Bạn cần sử dụng Session hoặc Cookie để phân quyền. Hoặc tạo một field có phân loại người dùng như là:
    Table: Users
    Field: ID, UserName, PassWord, IsAdmin (bool)

    Bạn kiểm tra nếu user có được set IsAdmin = true thì được sử dụng admincp
    còn không thì chỉ là user sử dụng thường
    None!

  3. #3
    Ngày gia nhập
    10 2006
    Bài viết
    107

    Thực ra về vấn đề phân quyền cho một hệ thống nào cụ thể nào đó sẽ dựa trên nhu cầu thực tiễn của hệ thống đó. Một ví dụ đơn giản cho việc phân quyền như sau :

    + Mình có phân quyền với 2 bảng trong cơ sở dữ liệu

    - tblUsers : Bảng người dùng (chứa thông tin tài khoản người dùng hệ thống) có 2 trường cơ bản là [UserName] và [Password]. Thêm vào đó là một trường chứa mã quyền [PermissionID] (trường này sẽ có liên kết khóa ngoại với một bảng quyền cụ thế phía sau đây). Bảng này có thể mở rộng thêm vào các trường chứa thông tin phụ như ([Name], [Age], [Gender], ...).

    - tblPerrmissons : Bảng mô tả quyền (chứa thông tin mô tả quyền cụ thể được thiết lập trong hệ thống). Có 2 trường cơ bản là [PermissionID] (trường mô tả mã quyền, sự mô tả này là duy nhất nên có tính chất là khóa chính, unique) và [PermissionName] (sử dụng mô tả tên quyền hạn, tạo sự rõ ràng cho hệ thống). Và để rõ ràng hơn có thể thêm trường [PermissionDesc] (Để viết chú thích chi tiết cho một quyền cụ thể).

    - Mối quan hệ : Từ hai bảng trên ta có mối quan hệ cụ thể như sau. Tại bảng tblPermissions ta có trường [PermissionID] (Nó đóng vai trò là khóa chính) liên kết với khóa ngoại là trường [PermissionID] bên bảng tblUsers. Về cơ bản chỉ cần như trên nếu muốn chặt chẽ hơn có thể đặt thuọc tính (Identify, Unique) vào trường [PermissionID] và (Unique) vào trường [PermissionName].

    - Dữ liệu kiểm thử : Như trên thì ta đã có hai bảng trong sơ đồ quan hệ thực thể của cơ sở dữ liệu, giờ ta điền các quyền cụ thể như sau (Mô tả bằng lệnh SQL):
    ---- tblPerrmissons
    - ("INSERT INTO [tblPermissions] ([PermisionName]) VALUES ('Admin')")
    - ("INSERT INTO [tblPermissions] ([PermisionName]) VALUES ('AnotherPermission')")
    - Lúc này trong CSDL ở bảng [tblPermissions] sẽ phát sinh 2 [PermisionID] tương ứng.
    ----
    -- tblUsers
    - ("INSERT INTO [tblUsers] ([UserName], [Password], [PermisionID]) VALUES ('admin', 'admin', 'Mã id tương ứng với quyền admin ở trên')")
    - ("INSERT INTO [tblUsers] ([UserName], [Password], [PermisionID]) VALUES ('solokop', 'idunno', 'Mã id tương ứng với quyền nào đó trên kia')")

    - Ứng dụng : Dựa trên dữ liệu đã đưa vào, khi bạn muốn kiểm tra tính hợp lệ quyền của tài khoản nào đó sẽ được lấy ra từ cơ sở dữ liệu để so sánh như (pete) nói ở trên và thực hiện tác vụ phù hợp với quyền do bạn quy định trong hệ thống của mình.

    - Lời kết : Trên đây chỉ là mức đó phân quyền cơ bản nhất của một ứng dụng. Với mô hình trên khi một tải khoản cần đến 2 quyền một lúc thì chúng không thể đáp ứng được. Lúc này bạn cần chia ra thành 3 bảng với mô hình quan hệ phù hợp. Với những mô hình hệ thống lớn hơn, như Window, SQLServer2000, thì phần phân quyền của những ứng dụng này còn chia làm nhiều lớp, đa nhóm, nếu mô tả qua CSDL quan hệ có khi lên tới 5 đến 7 bảng ấy chứ.
    Đã được chỉnh sửa lần cuối bởi Solokop : 27-01-2008 lúc 05:00 PM.
    Nói là một chuyện, làm là một chuyện. Chi bằng ta làm xong rồi hãy nói như vậy thì nói và làm sẽ là một chuyện.

  4. #4
    Ngày gia nhập
    06 2007
    Nơi ở
    HCM
    Bài viết
    365

    Trích dẫn Nguyên bản được gửi bởi minhitcn2 Xem bài viết
    Các bạn ơi cho mình hỏi mình đã tạo ra 1 Form đăng nhập rồi ,nhưng mình không biết sử dụng sao cho nó tối ưu được, ý của mình là nếu mình đăng nhập với tài khoản là ADMIN thì dùng được hết chức năng của Form chính ,còn các ueser khác thì không chỉ sử dụng được 1 số chức năng thôi .
    Bạn tham khảo kỹ thuật phân quyền cho từng user qua menu nhé, tùy từng user logon permisson mà các menu thích hợp sẽ được dấu đi khi đăng nhập vào.
    http://www.dot.net.vn/Desktop.aspx/T...ng/2.viePortal
    thực ra còn rất nhiều cấp độ phân quyền , phân quyền qua menu chỉ là cấp độ đơn giản nhất, các ứng dụng quản trị CSDL thường có thêm phân quyền chi tiết trên từng form nhập liệu với những permission cơ bản như : Thêm, xửa , xóa,xem .Ví dụ nhân viên bán hàng có thể tạo được phiếu xuất nhưng ko thể sửa lại đề phòng gian lận..

  5. #5
    Ngày gia nhập
    10 2007
    Bài viết
    4

    mấy bạn có thể nói rõ hơn đươc ko?

  6. #6
    Ngày gia nhập
    05 2007
    Nơi ở
    Thềm Xưa
    Bài viết
    44

    Mặc định Phân Quyền Cho Các Người Dùng

    Nói đơn giản là thế này.
    trong table nhân viên của bạn bạn lưu trữ thêm một cột là "Phan_Quyen" phân quyền chẳng hạn và kiểu dữ liệu của nó là bool hay ji đó miễn sao bạn cảm thấy được thì thôi.
    Cách của anh solokop là rất rõ ràng và độc lập,nhưng hơi phí nếu chỉ cần quyền admin và ko admin.và cũng vướng 1 vấn đề như anh solokop đã nói là 1 người ko thể có 2 quyền .
    Bạn đọc kỹ lại mấy bài của các anh bên trên là bạn sẽ hiểu rõ hơn rất nhiều.
    Đã được chỉnh sửa lần cuối bởi yuno : 27-07-2008 lúc 09:18 AM.
    Hãy cùng nhau xây dựng một cộng đồng lớn mạnh

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

  1. Cách Phân Quyền người dùng Trong ứng dụng C#?
    Gửi bởi bachkim20 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 03-01-2013, 06:12 PM
  2. Phân quyền người dùng cho button?
    Gửi bởi zombievs trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 15
    Bài viết cuối: 18-05-2011, 11:26 AM
  3. Phân quyền dùng vài thủ thuật nhỏ
    Gửi bởi tesulakata trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 1
    Bài viết cuối: 01-08-2010, 08:23 AM
  4. Dùng đệ quy trên MenuStrip để phân quyền sử dụng cho user??
    Gửi bởi nth4 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 25-05-2009, 09:32 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