Tôi đang sử dụng tính năng xác thực chú thích dữ liệu rộng rãi trong ASP.NET MVC 2. Tính năng mới này đã tiết kiệm rất nhiều thời gian, vì bây giờ tôi có thể xác định cả xác thực phía máy khách và xác thực phía máy chủ ở một nơi. Tuy nhiên, trong khi tôi đã làm một số thử nghiệm chi tiết, tôi nhận ra rằng khá dễ dàng cho một người nào đó bỏ qua xác thực phía máy chủ nếu tôi chỉ dựa vào xác thực Chú thích dữ liệu. Ví dụ: nếu tôi đã xác định trường bắt buộc bằng cách chú thích thuộc tính với thuộc tính [Bắt buộc] và đặt hộp văn bản cho trường bắt buộc đó trong biểu mẫu, người dùng có thể chỉ cần xóa hộp văn bản khỏi DOM (có thể dễ dàng thực hiện thông qua Firebug) và bây giờ việc xác nhận Chú thích dữ liệu sẽ không được kích hoạt trên thuộc tính đó trong khi ModelBinding bên trong một Controller. Để đảm bảo rằng xác nhận "yêu cầu" được kích hoạt, tôi có thể lặp lại xác nhận sau khi ModelBinding xảy ra, nhưng sau đó tôi sẽ lặp lại logic xác nhận của mình.ASP.NET MVC: Xác nhận chú thích dữ liệu có đủ không?
Đề xuất của mọi người về xác thực là gì? Quá trình xác nhận chú thích dữ liệu có đủ không? Hoặc việc xác thực cần được lặp lại để đảm bảo rằng các xác nhận hợp lệ được kích hoạt trong mọi tình huống?
Nhận xét tiếp theo: Dựa trên câu trả lời bên dưới, có vẻ như tôi không thể dựa vào xác nhận Mô hình và Ghi chú dữ liệu một mình. Vì chúng tôi đang kết luận rằng xác thực phía máy chủ bổ sung là bắt buộc, có cách nào dễ dàng cho lớp Dịch vụ của tôi kích hoạt xác thực dựa trên những gì được xác định trong Chú thích dữ liệu không? Dường như điều này sẽ giúp chúng tôi tốt nhất trong cả hai từ ... chúng tôi sẽ không cần phải lặp lại mã xác nhận, nhưng chúng tôi vẫn sẽ đảm bảo rằng xác thực được thực thi ngay cả khi Trình kết hợp mô hình không kích hoạt nó.
Tôi sẽ đăng nhận xét tiếp theo này dưới dạng câu hỏi riêng, vì câu hỏi này đặt ra một câu hỏi khác với câu hỏi ban đầu.
Phản hồi của Koritnik trả lời truy vấn theo dõi của bạn. Tôi thực hiện xác nhận của tôi tương tự như câu trả lời mà anh ấy đã đăng. Cùng một định nghĩa DataAnnotation có thể được sử dụng cho cả xác thực máy chủ và máy khách. –
Xác nhận Chú thích dữ liệu là tốt nếu các thuộc tính xác thực được cung cấp và khung chính nó phù hợp với bạn. Hành vi với Yêu cầu đã được thay đổi cho ASP.NET MVC 2 RTM do phản hồi của cộng đồng, vì vậy [Bắt buộc] hiện hoạt động như bạn mong đợi. Optinally, hãy kiểm tra: Validation Block (Thư viện doanh nghiệp), xVal, NHibernate Validators (được cho là không phụ thuộc vào NHibernate ORM). – miha
'" Tôi sẽ đăng bình luận tiếp theo này như một câu hỏi riêng biệt, vì nó đặt ra một câu hỏi khác với câu hỏi ban đầu. "Một liên kết đến đó không phải là một ý tưởng tồi, eh? – Sinjai