2017-03-03 17 views
22

Sau khi đọc về asp.net lõi middlware, tôi bối rối khi tôi nên sử dụng bộ lọc và khi nào tôi nên sử dụng middlewares khi họ dường như đạt được cùng một mục tiêu. Khi nào phần giữa nên được sử dụng thay vì bộ chỉnh hình?asp.net lõi middleware vs bộ lọc

+1

Tài liệu này nhắm mục tiêu đến câu hỏi cụ thể. https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/filters#using-middleware-in-the-filter-pipeline – Nkosi

Trả lời

16

Có video về điều này trên kênh 9: ASP.NET Monsters #91: Middleware vs. Filters. Để tóm tắt video:

Thực hiện yêu cầu bắt đầu và chúng tôi có phần mềm trung gian, và một phần mềm khác, nghĩ nó giống như "búp bê Nga bên trong búp bê" và cuối cùng là phần mềm trung gian định tuyến và sau đó yêu cầu đi vào Đường ống MVC. Vì vậy, nếu bạn không yêu cầu bối cảnh của MVC (giả sử bạn quan tâm đến luồng và thực thi, như đáp ứng tiêu đề một số cơ chế định tuyến trước, vv), sau đó sử dụng các phần tử trung gian .
Nhưng nếu bạn yêu cầu bối cảnh của MVC và bạn muốn hoạt động chống lại các hành động thì sử dụng bộ lọc.

18

Phần mềm trung gian hoạt động trên cấp ASP.NET Core và có thể hoạt động trên mọi yêu cầu duy nhất có trong ứng dụng.

Bộ lọc MVC mặt khác chỉ chạy cho các yêu cầu đến với MVC.

Ví dụ: nếu tôi muốn thực thi tất cả các yêu cầu phải được thực hiện qua HTTPS, tôi sẽ phải sử dụng phần mềm trung gian cho điều đó. Nếu tôi đã thực hiện bộ lọc MVC đã thực hiện điều đó, người dùng vẫn có thể yêu cầu, ví dụ: các tệp tĩnh qua HTTP.

Nhưng sau đó mặt khác, thứ ghi nhật ký thời gian yêu cầu trong bộ điều khiển MVC hoàn toàn có thể là bộ lọc hành động.

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