Tôi đang cố gắng chọn một trong các khung xác thực cho một ứng dụng lớn, và trong khi cả hai tùy chọn dường như hấp dẫn, tôi đã tự hỏi liệu có bất kỳ ưu và khuyết điểm cụ thể nào mà tôi cần biết trước khi cam kết với một hay khác.Khung xác thực nào cần chọn: Khối xác thực mùa xuân hoặc Khối ứng dụng xác thực (Enterprise LIbrary 4.0)?
Trả lời
Xác thực bằng thuộc tính không phải là giải pháp tốt nhất trong quan điểm của tôi. Thứ nhất, bạn phải tham khảo cơ sở hạ tầng trong mô hình miền. Thứ hai, bạn không có cơ hội để thêm xác nhận vào các lớp được biên dịch. Cuối cùng, bạn không thể xác thực logic phức tạp với các thuộc tính và bạn phải làm cho phương thức Validate thành thực thể và điều đó có vẻ khó xử.
Trong quá trình xác nhận ý kiến của tôi nên được tách riêng với đối tượng khác. Ví dụ IValidator, nơi bạn có thể xác định xác nhận là quy tắc. Sử dụng khung như xVal giúp xác thực trong lớp trình bày bằng JavaScript.
Bạn có thể muốn tìm kiếm xVal và FluentValidation for .NET. NHibernate Validator 1.2 alpha cũng có cú pháp thông thạo và được tích hợp với xVal (không chắc chắn về alpha, nhưng 1.0 nên là).
Khối xác thực doanh nghiệp cũng có một số mặt tiêu cực. Thuộc tính của thực thể của tôi đã kết thúc có 3 hàng thuộc tính và làm cho khả năng đọc trở nên tồi tệ hơn. Việc cố gắng thêm xác nhận bằng các toán tử AND hoặc OR cũng khá đau.
Chặn ứng dụng xác thực không được sử dụng với thuộc tính. Nó chứa một phương pháp xác thực dựa trên cấu hình. Đọc bài viết này: http://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=46 – Steven
Mặc dù tôi thích xác thực dựa trên cấu hình hơn cấu hình dựa trên thuộc tính vì cùng lý do như mô tả Marek, VAB 5.0 cho phép bạn xác định tính hợp lệ bằng cách sử dụng kỹ thuật lớp bạn thân đã được DataAnnotations giới thiệu. – Steven
xVal đã được sử dụng với ASP.NET MVC 1.0 và hiện không được chấp nhận –
Một điều mà tôi đã tìm thấy với các khối Thư viện doanh nghiệp là nó có thể buộc bạn phải sử dụng các khối khác mà bạn không muốn/cần. Ví dụ, một Validation có thể sử dụng khối đăng nhập, nhưng bạn đã hài lòng với hệ thống đăng nhập của riêng bạn. bây giờ ứng dụng của bạn ghi lại mọi thứ theo những cách khác nhau. Điều đó nói rằng, tôi đã thích giao diện của khối Validation trong Ent Lib. Tôi đã không chơi với Spring.NET tho.
Tôi chưa bao giờ gặp sự cố này với Khối ứng dụng xác thực. Bạn có thể chỉ ra mã hoặc vị trí mà VAB đang gọi Khối đăng ký ứng dụng không? – Steven
Tôi đã xem xét sâu hơn về điều này, nhưng không có cuộc gọi trực tiếp từ các hội đồng xác nhận của Thư viện doanh nghiệp cho bất kỳ hội đồng đăng nhập nào. Tôi nghĩ rằng ứng dụng của bạn đã sử dụng phần ghi nhật ký trực tiếp. Trong các ứng dụng của tôi, tôi chỉ xuất bản các assembly cụ thể cho VAB. Đối với VAB 5.0, bạn cần: 'Common',' Validation', 'ServiceLocation',' Unity', 'Unity.Configuration' và' Unity.Interception'. – Steven
Điều này có thể đã ở trên một phiên bản cũ hơn. Khi tôi nghĩ rằng tôi thấy đây là phiên bản 2.0 của Thư viện doanh nghiệp. – SteveM
- 1. Chú thích dữ liệu hoặc khối Xác thực ứng dụng
- 2. Java Xác thực Library
- 3. nhà cung cấp xác thực mùa xuân VS Bộ lọc xử lý xác thực
- 4. Xác thực khung thực thể
- 5. Xác thực có điều kiện trong Mùa xuân
- 6. Bảo mật mùa xuân 3.2 Xác thực mã thông báo
- 7. Xác thực bảo mật mùa xuân qua mã thông báo
- 8. Bảo mật mùa xuân 3.0 - Cấp phép với xác thực
- 9. Xác nhận hợp lệ mùa xuân và xác thực Hibernate bằng cách sử dụng chú thích
- 10. Xác thực tùy chỉnhFilter Bảo mật mùa xuân 3.2
- 11. Lỗi xác thực mùa xuân không được hiển thị
- 12. Tắt xác thực XSD của các tệp mùa xuân
- 13. Khung xác thực trong C#?
- 14. Ứng dụng web - Khung xác thực/đăng nhập
- 15. Xác thực trường chọn
- 16. bảo mật mùa xuân: ủy quyền mà không cần xác thực
- 17. Xác nhận mùa xuân - Lập trình liên kết với Trình xác thực
- 18. Lỗi xác thực của Lược đồ đậu mùa xuân bên trong bối cảnh ứng dụng
- 19. Cách tích hợp xác thực AD + SSO với ứng dụng web đã xác thực của Saas Web được xác thực
- 20. Xuân An và LDAP xác thực
- 21. Cần một khung xác thực/ủy quyền python
- 22. Xác thực xác thực mà không cần mật khẩu, chỉ sử dụng tên người dùng
- 23. Xác thực tùy chọn. Android
- 24. Làm cách nào để xác thực người dùng trong ứng dụng Nút bằng xác thực Django?
- 25. Xác thực Jquery - hiển thị tóm tắt xác thực trong quá trình xác thực mong muốn?
- 26. Sử dụng khung thực thể với khối SSAS
- 27. Xác thực Jquery để xác thực URL
- 28. Máy ứng dụng của Google: Xác thực điểm cuối khi xác thực tùy chỉnh hoặc ID mở được sử dụng
- 29. "OAuthException", "message": "Lỗi xác thực ứng dụng".
- 30. Xác minh chữ ký xác thực khi thực thi ứng dụng .NET
Web hoặc máy tính để bàn? Bạn đang sử dụng các khối entlib khác? Bạn vui lòng chỉ định kiến trúc? – boj
Nó dành cho một ứng dụng web. Tôi có thể sử dụng các khối entlib khác, chẳng hạn như bảo mật và đăng nhập, vì nó sẽ được yêu cầu trong ứng dụng. Tôi sẽ không sử dụng Unity mặc dù, vì bit đó sẽ được xử lý bởi Spring.NET –
Tôi không có kinh nghiệm với Spring.NET nhưng tôi là một fan hâm mộ lớn của khối EntLib. Bạn nên đọc http://weblogs.asp.net/ricardoperes/archive/2009/03/11/asp-net-validation-with-the-enterprise-library-validation-block.aspx và http: //www.davidhayden .com/blog/dave/archive/2007/02/28/PropertyProx – boj