Речь идет не о вашем реальном вопросе, но вы должны проверить любой ввод пользователя, особенно если вы хотите, чтобы пользователи загружали файлы в виртуальную папку на вашем веб-сервере. Вы должны по крайней мере проверить, соответствует ли тип содержимого файла тому, который вы ожидаете, или, что еще лучше, отфильтровать (изменить размер) изображение, используя классы, доступные в .NET Framework.
Если вы этого не сделаете, пользователи могут делиться произвольным контентом через ваш сайт или размещать вредоносные файлы (например, изображения, содержащие сценарии, которые могут выполняться некоторыми веб-браузерами) на вашем сервере.
С дополнительной проверкой вы также сможете проверить, действительно ли был отправлен контент.
И: действительно серьезная уязвимость появляется, когда вы строите путь сохранения путем объединения ввода из поля формы (я полагаю, UserID.Value
- это параметр POST, который вы упомянули?). Это позволяет пользователям решать, где хранить контент на вашем сервере, и, что еще хуже, иметь возможность перезаписывать существующие файлы !!!