2013-02-21 16 views
16

Tôi đã trải qua các liên kết đề cập dưới đây,TransferRequest vs Chuyển trong ASP.Net

iis forumHttpModules & Server.Transfer/Server.TransferRequest/RewritePath problems. nhưng không thể nắm bắt được khái niệm đằng sau các phương thức chuyển giao này.

Chúng hoạt động như thế nào? Và cái nào được ưu tiên trong tình huống khác nhau?

Ai đó có thể giải thích cho tôi TransferRequest vs Phương thức chuyển giao cho chuyển tiếp phía máy chủ trong asp.net và vai trò của nó?

Cảm ơn trước

Trả lời

17

HttpServerUtility.Transfer Chấm dứt thực hiện trang hiện tại và bắt đầu thực thi URL được cung cấp. Điều này về cơ bản bản đồ và thực hiện một trang ASP.NET mới (hoặc phục vụ một tập tin tĩnh) tương ứng với url được cung cấp. Nó thực hiện điều này tại chỗ trong đường ống yêu cầu hiện tại, mà không áp dụng cấu hình mới cho url mới, hoặc chạy lại các mô-đun IIS cho url mới. Bởi vì điều này, nó rất nhanh, nhưng nó cũng ngăn cản rất nhiều kịch bản có thể với TRQ.

HttpServerUtility.TransferRequest Thực hiện thực thi không đồng bộ của URL được cung cấp. Đây là một yêu cầu con IIS đầy đủ dưới bìa, cho phép nó chạy lại toàn bộ đường dẫn yêu cầu cho yêu cầu mới như thể nó là một yêu cầu riêng biệt, nhận cấu hình đúng cho nó và chạy tất cả các mô-đun IIS bình thường bao gồm xác thực, ủy quyền, vv Ví dụ, IIS sẽ áp dụng các quy tắc ủy quyền cho url mới, trái ngược với url trước đó.

6

TransferRequest chạy lại toàn bộ đường ống theo yêu cầu như thể nó là một yêu cầu riêng biệt. Điều này có nghĩa là các mô-đun IIS và ASP.NET được áp dụng lại; quy tắc xác thực và ủy quyền cho URL mới sẽ được tôn trọng. Lưu ý rằng TransferRequest yêu cầu chế độ đường ống tích hợp của IIS 7+ và quá trình chuyển có thể đến trang ASP hoặc tài nguyên khác như tệp XML.

Transfer chuyển thực thi từ một trang ASP sang một trang ASP khác trên máy chủ. Không giống như TransferRequest, IIS và ASP.NET sẽ KHÔNG xác minh rằng người dùng hiện tại được phép xem tài nguyên được cung cấp bởi phương thức Transfer. Nếu bạn cần bắt buộc ủy quyền lại và chế độ đường ống tích hợp không phải là một tùy chọn, hãy gọi Redirect thay vì phương thức Chuyển. Chuyển hướng kích hoạt một chuyển hướng phía máy khách để yêu cầu mới sẽ phải chịu tất cả logic xác thực và ủy quyền của IIS và ASP.NET.