2008-12-09 34 views
7

Tôi là nhà phát triển C#. Tôi phát triển cả Windows & Ứng dụng web. Tôi muốn xây dựng một ứng dụng Winforms có một hệ thống dựa trên vai trò. Tất cả người dùng phải có vai trò/nhóm. Sau đó, chúng tôi gán các quyền như "Xem, Thêm, Cập nhật, .." vào vai trò/nhóm. Vai trò/nhóm là năng động, vì vậy chúng tôi cho phép người dùng xác định nó.Bất kỳ khung công tác nào về xác thực và ủy quyền cho ứng dụng biểu mẫu Windows?

Có bất kỳ khung công tác và dự án mẫu tốt nào để triển khai không?

Trả lời

1

Tôi thường cuộn của riêng mình, vì Khuôn khổ .NET khá đầy đủ tính năng trong lĩnh vực này, nhưng bạn có thể thử MS Authorization and Profile Application Block.

+0

Tôi sẽ phải xem xét điều đó. Có dễ dàng đóng vai trò hồ sơ người dùng và vai trò vào cơ sở dữ liệu không? – w4g3n3r

+0

Không biết. Cá nhân tôi không bao giờ sử dụng nó .... –

1

Để biết chi tiết triển khai grungy, bạn đã xem xét "hiệu trưởng" chưa? Xem trả lời của tôi here. Với phương pháp này, bạn có thể sử dụng vai trò dựa trên an ninh trong các mã - chẳng hạn như:

[PrincipalPermission(SecurityAction.Demand, Role="ADMIN")] 
    static void SomeMethod() 
    {...} 

Bộ thực thi bản thân bây giờ sẽ xác minh rằng người dùng phải có "ADMIN" vai trò của mình để có được vào phương pháp đó (rõ ràng là bạn cũng có thể vô hiệu hóa tùy chọn trong giao diện người dùng bằng cách kiểm tra IsInRole(...)). Rất mạnh.

+2

Vậy tại sao lại là vấn đề nếu chúng ta không muốn sử dụng hardcode "ADMIN" trong codebase của chúng tôi bởi vì chúng tôi muốn cho phép người dùng tự định nghĩa chúng. – Samnang

+1

Sau đó, không sử dụng DEMAND - chỉ cần kiểm tra các quyền thông qua IsInRole. –

1

Nếu bạn không quá quan tâm đến việc phát minh lại bánh xe, hãy xem sản phẩm có tên Visual Guard. Nó cho phép bạn dễ dàng thêm bảo mật cho ứng dụng của mình với công việc tối thiểu và có một bộ công cụ thực sự đầy đủ tính năng.

1

Nếu bạn có kinh nghiệm với ASP.NET thì có lẽ bạn đã quen thuộc với hệ thống Membership/Role/Profile ASP.NET, với các nhà cung cấp mặc định và khả năng thêm của riêng bạn mà không có quá nhiều rắc rối.

Nó sẽ không tuyệt vời nếu bạn có thể sử dụng tất cả những điều đó từ bên trong các ứng dụng Windows Forms hoặc WPF của bạn? Vâng? Sau đó, hãy xem ASP.NET Application Services! Bạn chỉ cần thiết lập một trang web để cung cấp một URL xác thực và sau đó yêu cầu ứng dụng của bạn sử dụng nó. Bạn có thể tạo cửa sổ đăng nhập tùy chỉnh của riêng bạn và mở các dịch vụ ứng dụng khi cần hoặc sử dụng logic của riêng bạn và tự gọi các phương thức đó.

Nó có hỗ trợ đầy đủ cho 'chế độ ngoại tuyến', nơi nó lưu trữ một mật khẩu băm để so sánh, nó cũng có thể lưu trữ vai trò và cho phép bạn sử dụng cài đặt Cấu hình.

Các vấn đề liên quan