Tôi có một ứng dụng ASP.NET MVC với một tuyến đường cho phép tìm kiếm nội dung thông qua / search / <searchterm>.
Khi tôi cung cấp "search / abc" thì nó hoạt động tốt, nhưng khi tôi cung cấp "/ search / a + b + c" (mã hóa url chính xác) thì IIS7 từ chối yêu cầu với HTTP Error 404.11 ( Mô-đun lọc yêu cầu được cấu hình để từ chối a yêu cầu có chứa một chuỗi thoát kép ). Tất cả, tại sao nó làm điều này? Nó dường như chỉ ném lỗi nếu nó là một phần của URL, nhưng không phải là một phần của chuỗi truy vấn (/ truyền? Q = a + b + c hoạt động tốt).
Bây giờ tôi có thể kích hoạt các yêu cầu thoát kép trong phần bảo mật của web.config nhưng tôi ngần ngại thực hiện vì tôi không hiểu hàm ý này và tại sao máy chủ sẽ từ chối yêu cầu "a + b + c" như một phần của URL nhưng chấp nhận như một phần của chuỗi truy vấn.
Ai đó có thể giải thích và đưa ra một số lời khuyên phải làm gì?
/search/a%2520b%2520c
việc đánh dấu dẫn đến lỗi "Giá trị Request.Path nguy hiểm tiềm tàng được phát hiện từ máy khách (%)". Bạn không thể chiến thắng dường như.