Tôi có một trang web MVC3 trong C #, tôi có một chế độ xem cụ thể đang được cung cấp các tham số truy vấn từ một hàm JavaScript, hàm chuyển hướng đến trang web qua
window.location.href = "../ActionName?" + chuỗi truy vấn;
query_string là chuỗi tham số truy vấn động được tạo bởi hàm JavaScript.
Lý do cho sự kì quái này là đôi khi các chức năng tương tự qua URL đến một ASP.Net Webform do đó phải sử dụng ReportViewer kiểm soát, hành động thay thế là để tiết kiệm một số thông số trong trường hợp này nó đi để xem. (Có thể nói rõ hơn nếu điều đó không hợp lý)
Toàn bộ mọi thứ hoạt động tốt cho đến khi tôi giới thiệu [Ủy quyền] cho phương thức hành động. Ngắt nếu nó ở đúng vị trí, hoạt động tốt mà không cần và [Ủy quyền] hoạt động tốt trên tất cả các phương pháp khác.
Toàn bộ URL trong trường hợp này dài 966 ký tự, sau khi nghiên cứu, có vẻ như giá trị maxQueryStringLength là 2048 theo mặc định nhưng có thể bị ghi đè thành bất kỳ giá trị nào của kiểu số nguyên, vì vậy tôi đã thêm
<security>
<requestFiltering>
<requestLimits maxQueryString="2048"></requestLimits>
</requestFiltering>
</security>
vào tệp cấu hình web bên dưới khóa.
Không có niềm vui ở đó, vì vậy tôi đã trở nên buồn cười và làm cho nó 4096, vẫn không có niềm vui.
Bây giờ với toàn bộ URL dài 966 ký tự, thuộc tính ủy quyền không thể thực sự thêm 1082-3130 ký tự khác, vì vậy làm cách nào để xác định lỗi thực sự là gì hoặc tại sao cài đặt không có hiệu lực.
VS2010 Pro SP1