Limit rozmiaru pliku akcji MVC3
Implementuję wtyczkę do przesyłania plików opartą na jqueryhttp://blueimp.github.com/jQuery-File-Upload/. Istnieje przykładowa aplikacja MVC3, którą można pobraćhttps://github.com/maxpavlov/jQuery-File-Upload.MVC3.
Autor próbki ma komentarz w widoku głównym:
@ * W CELU UŻYCIA DZIAŁAŃ MVC JAKO UŻYTKOWNIKÓW POŁĄCZEŃ AJAX, KORZYSTAJ Z PONIŻSZEJ DEKLARACJI FORMULARZA. (JEDEN KOMENTOWANY WYJŚCIE) NIE JEST ZALECANY OD KIEDY KORZYSTANIE Z KONTROLERA MVC DO UCHWYTU JEST JEDEN NIE MOŻE KONTROLOWAĆ maxMessageLength ŻĄDANIA POCZTOWEGO NINIEJSZE ODLEWY FUNKCJONALNOŚĆ WYSYŁANIA DUŻYCH PLIKÓW BEZ UŻYTKOWNIKA, CHYBA, ŻE ZAPEWNIESZ BEZPIECZEŃSTWO I POZWOLI NA DUŻE ROZMIARY WIADOMOŚCI POST SZEROKIE STRONY.
LEPSZE JEST UŻYWANIE HANDLERA HTTP DO PRZETWARZANIA ŻĄDANYCH WNIOSKÓW, ABY RAMY MVC ZAPEWNIAJĄ SPOSOBY USTAWIANIA maxMessageLength NA PODSTAWIE AKCJI * @
Czy nadal tak jest?
Dowiedziałem się, że mogę ustawić<httpRuntime maxRequestLength="x" />
w web.config, ale rozumiem, że jest to luka w zabezpieczeniach. Czy to przypadek?
Wolałbym obsługiwać przesyłanie do kontrolera zamiast używać HttpHandler, ale nie chcę być ograniczony przez rozmiar pliku i nie chcę wprowadzać żadnych luk w zabezpieczeniach, jeśli nie muszę.
Aktualizacja:
Zgodnie z tym postemPrzesyłanie plików ASP.NET MVC 3.0 domyślny limit rozmiaru pliku to 4 MB. Potwierdziłem ten limithttp://msdn.microsoft.com/en-us/library/e1f13641.aspx i zrozumieć lukę.
Czy to jedyny sposób na przesłanie pliku przez akcję kontrolera przekraczającą 4 MB?