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

Đề tài: Dùng đệ quy trên MenuStrip để phân quyền sử dụng cho user??

  1. #1
    Ngày gia nhập
    06 2007
    Bài viết
    206

    Mặc định Dùng đệ quy trên MenuStrip để phân quyền sử dụng cho user??

    Mình đang dùng đệ quy để xét phân quyền cho các user.

    1. Ban đầu mình cho chạy đệ quy các menu của MenuStrip để xét enable = false.

    2. Sau đó ứng với user nào đc quyền truy cập form thì mình sẽ cho chạy đệ quy 1 lần nữa và xét enable = true

    Như vậy có vấn đề gì ko các bạn, mình phảii chạy đệ quy đến 2 lần, nên khi người đăng nhập mình thấy nó xử lý hơi chậm.

    Mình đang suy nghĩ cách đơn giản hơn!

    CSDL phân quyền mình như sau:

    1. Người dùng: (username, pass)
    2. Form: (maForm, tenForm)
    3. Phân quyền: (id (tự tăng), username, maForm, đc_sử_dụng (true/false))

    Visual C# Code:
    1. // De Quy
    2.         private void DisableMenu(MenuStrip menu, bool f)
    3.         {
    4.             if (menu == null)
    5.                 return;
    6.  
    7.             foreach (ToolStripMenuItem _item in menu.Items)
    8.             {
    9.                 DisableItem(_item, f);
    10.             }
    11.  
    12.         }
    13.         private void DisableItem(ToolStripMenuItem parentItem, bool f)
    14.         {
    15.             if (parentItem != null && parentItem.DropDownItems.Count > 0)
    16.             {
    17.                 foreach (ToolStripMenuItem _item in parentItem.DropDownItems)
    18.                 {
    19.                     DisableItem(_item, f);
    20.                 }
    21.             }
    22.            
    23.             try
    24.             {
    25.                 if(parentItem.Tag != null)
    26.                 parentItem.Enabled = f;
    27.             }
    28.             catch { }
    29.         }

    Visual C# Code:
    1.  private void EnableMenu(MenuStrip menu, string maForm)
    2.         {
    3.             if (menu == null)
    4.                 return;
    5.  
    6.             foreach (ToolStripMenuItem _item in menu.Items)
    7.             {
    8.                 EnableItem(_item, maForm);
    9.             }
    10.  
    11.         }
    12.         private void EnableItem(ToolStripMenuItem parentItem, string maForm)
    13.         {
    14.             if (parentItem != null && parentItem.DropDownItems.Count > 0)
    15.             {
    16.                 foreach (ToolStripMenuItem _item in parentItem.DropDownItems)
    17.                 {
    18.                     EnableItem(_item, maForm);
    19.                 }
    20.             }
    21.            
    22.             try
    23.             {
    24.                 if (parentItem.Tag.ToString() == maForm)
    25.                     parentItem.Enabled = true;
    26.             }
    27.             catch { }
    28.         }
    Thà để chửi dốt 1 lần, còn hơn ngu cả đời.

  2. #2
    Ngày gia nhập
    01 2008
    Bài viết
    120

    Ngày trước có làm rùi. Bạn có thể làm theo cách này :
    -b1. Xây dựng hàm LoadMenuForEachUser(user u);
    -b2. Mình định nghĩa các MenuItem của mỗi user ra ngoài Databasse (tạm gọi là MenuForUser)
    -b3. Tạo tiếp bảng MenuItemClick(string ClickEventName); Định nghĩa mỗi lần click vào 1 menu nào đó thì nó sẽ nhảy đến sự kiện đã đc khai báo trong code rùi.
    Đã được chỉnh sửa lần cuối bởi thepbac : 25-05-2009 lúc 11:42 AM.
    Đã mất công nghĩ thì nghĩ mẹ cái thật lớn vào !
    Y!H: trinhhoaithanh1905

  3. #3
    Ngày gia nhập
    01 2008
    Bài viết
    120

    Cách đơn giản hơn là, BẠN ĐẢO BUÓC 2 lên thành Buóc 1 đi. Tức là
    b1. user nào đó Login ->biết quyền và mức truy cập
    b2. Load menu đó dựa theo quyền. ok men?
    Đã mất công nghĩ thì nghĩ mẹ cái thật lớn vào !
    Y!H: trinhhoaithanh1905

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

    Trích dẫn Nguyên bản được gửi bởi thepbac Xem bài viết
    Cách đơn giản hơn là, BẠN ĐẢO BUÓC 2 lên thành Buóc 1 đi. Tức là
    b1. user nào đó Login ->biết quyền và mức truy cập
    b2. Load menu đó dựa theo quyền. ok men?
    Cái mình đang hỏi là vấn đề xử lý của bước 2 đó bạn.
    Thà để chửi dốt 1 lần, còn hơn ngu cả đời.

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

  1. Cách dùng user control trên cửa sổ popup
    Gửi bởi o0ocuchuoio0o trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 04-09-2013, 08:39 AM
  2. Cách phân quyền user trên form trong lập trình C#?
    Gửi bởi cham3cham trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 05-07-2012, 08:32 PM
  3. kiểm tra quyền hạn của 1 user trên linux?
    Gửi bởi namboygacon trong diễn đàn Thắc mắc lập trình shell Linux
    Trả lời: 1
    Bài viết cuối: 30-05-2012, 09:24 PM
  4. Cách phân quyền cho user truy xuất vào file được share trên server?
    Gửi bởi I.Coder trong diễn đàn Thắc mắc chung
    Trả lời: 0
    Bài viết cuối: 07-11-2011, 12:39 AM
  5. Lưu file vào thư mực trên server có phân quyền người dùng?
    Gửi bởi benkyhon trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 03-06-2010, 02:10 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