
C #'da bir MVC3 sitem var, JavaScript işlevinden sorgu parametreleri beslenen belirli bir görünüme sahibim, işlev siteye şu yolla yönlendiriyor:
window.location.href = "../ActionName?" + sorgu_dizesi;
sorgu_dizesi, JavaScript işlevi tarafından oluşturulan dinamik sorgu parametreleri dizesidir.
Bu tuhaflığın nedeni, bazen aynı işlevin, Reportviewer denetimini kullanmak zorunda olduğu için URL'yi bir ASP.Net web formuna geçirmesidir, alternatif eylem, bu durumda görünüme geçmesi durumunda bazı parametreleri kaydetmektir. (Bu mantıklı değilse daha fazla ayrıntı verebilir)
Eylem yöntemini [Yetkilendir] ile tanıştırana kadar her şey yolunda gidiyor. Yerindeyse kırılır, olmadan sorunsuz çalışır ve [Yetkilendir] diğer tüm yöntemlerde iyi çalışır.
Bu durumda URL'nin tamamı 966 karakter uzunluğundadır, araştırmadan sonra maxQueryStringLength değerinin varsayılan olarak 2048 olduğu, ancak tam sayı türünün herhangi bir değerine geçersiz kılınabileceği görülüyor , bu nedenle sadece sırıtma için
<security>
<requestFiltering>
<requestLimits maxQueryString="2048"></requestLimits>
</requestFiltering>
</security>
anahtarın altındaki web yapılandırma dosyasının anahtarı.
Orada neşe yok, bu yüzden gülünç oldum ve 4096 yaptım, hala neşe yok.
Şimdi, URL'nin tamamı 966 karakter uzunluğunda olduğu için, authorize özelliği başka bir 1082-3130 karakter ekleyemez, bu nedenle hatanın gerçekte ne olduğunu veya ayarın neden etkili olmadığını nasıl belirleyebilirim.
VS2010 Pro SP1