4
คำขอเกิน maxQueryStringLength ที่กำหนดไว้เมื่อใช้ [Authorize]
ฉันมีไซต์ MVC3 ใน C # ฉันมีมุมมองเฉพาะที่ถูกป้อนพารามิเตอร์การสืบค้นจากฟังก์ชัน JavaScript ฟังก์ชันจะเปลี่ยนเส้นทางไปยังไซต์ผ่าน window.location.href = "../ActionName?" + query_string; query_string เป็นสตริงพารามิเตอร์เคียวรีแบบไดนามิกที่สร้างโดยฟังก์ชัน JavaScript สาเหตุของความแปลกนี้คือบางครั้งฟังก์ชันเดียวกันจะส่ง URL ไปยังเว็บฟอร์ม ASP.Net เนื่องจากต้องใช้ตัวควบคุมReportviewerการดำเนินการทางเลือกคือการบันทึกพารามิเตอร์บางตัวในกรณีนี้ที่ส่งผ่านไปยังมุมมอง (สามารถอธิบายเพิ่มเติมได้หากไม่สมเหตุสมผล) ทุกอย่างทำงานได้ดีจนกว่าฉันจะแนะนำ [Authorize] ให้กับวิธีการดำเนินการ หยุดทำงานถ้าอยู่ในสถานที่ทำงานได้ดีโดยไม่ต้องและ [Authorize] ทำงานได้ดีกับวิธีการอื่น ๆ ทั้งหมด URL ทั้งหมดในกรณีนี้มีความยาว 966 ตัวอักษรหลังจากการวิจัยดูเหมือนว่าค่าmaxQueryStringLengthคือ 2048 ตามค่าเริ่มต้น แต่สามารถแทนที่ค่าใดก็ได้ของประเภทจำนวนเต็มดังนั้นสำหรับการยิ้มฉันจึงเพิ่ม <security> <requestFiltering> <requestLimits maxQueryString="2048"></requestLimits> </requestFiltering> </security> คีย์ไปยังไฟล์กำหนดค่าเว็บภายใต้คีย์ ไม่มีความสุขที่นั่นฉันจึงไร้สาระและทำมันเป็น 4096 แต่ก็ยังไม่มีความสุข ขณะนี้ URL ทั้งหมดมีความยาว …