#asp.net #file #asp.net-mvc-3 #file-upload #impersonation
#asp.net #файл #asp.net-mvc-3 #загрузка файла #олицетворение
Вопрос:
У меня есть приложение MVC 3 на веб-хостинге, и использование input type = file не работает для загрузки изображений. Я получаю сообщение об ошибке «доступ запрещен» в папке.
Я связался со службой поддержки веб-хостинга, и они сказали, что я не могу использовать «Сетевые службы» для загрузки файлов, но я должен использовать «Олицетворение». И я получил ссылку на страницу от Microsoft о «олицетворении». Но поскольку я не получил большого количества объяснений, и они в любом случае не очень хороши в их предоставлении, я подумал, что, вероятно, получу более быстрый и качественный ответ здесь:
Действительно ли это олицетворение то, что мне нужно, чтобы разрешить загрузку файлов на моем сайте? И если да, то как именно это сделать (мне сложно расшифровать страницу Microsoft …)?
Действительно ли это позволяет загружать файлы для всех пользователей, прошедших проверку подлинности? Кажется, страница от Microsoft говорит о конкретных пользователях.
Вот ссылка:http://support.microsoft.com/kb/306158
Любая помощь приветствуется!
Обновить:
Я попытался установить identity impersonate = «true» в моем web.config, но вместо этого получил следующее сообщение об ошибке на реальном сайте:
Сообщение об ошибке синтаксического анализатора: ошибка в использовании раздела, зарегистрированного как allowDefinition =’MachineOnly’, за пределами machine.config.
Ошибка источника:
Line 18: <httpRuntime requestValidationMode="2.0" />
Line 19: <!--Set to allow HTML in comment box of CRM-->
Line 20: <identity impersonate="true" />
Line 21: </system.web>
Line 22: </location>
Ответ №1:
Вероятно, вам не нужно олицетворение на общедоступном веб-сайте. Вы можете попробовать сохранить загруженные файлы в специальной ~/App_Data
папке, к которой должна иметь доступ сетевая служба. Если вы хотите использовать какую-либо другую папку, вам нужно будет предоставить учетной записи сетевой службы разрешения на запись в эту папку.
Комментарии:
1. Я попытался установить папку App_Data в качестве папки загрузки вместо этого, но, к сожалению, получил ту же ошибку. Веб-хост специально сказал, что я не могу использовать сетевую службу, но должен использовать олицетворение… Для меня это тоже звучит неразумно, но это то, что они сказали, и поэтому я не ожидаю, что смогу попросить их предоставить разрешения на запись сетевой службе в папке… Итак, что мне делать?
2. Я также использовал загрузку файлов без проблем на другом веб-хостинге, поэтому я действительно не знаю, зачем мне это нужно здесь. Но опять же, что мне делать, если они скажут мне, что мне нужно олицетворение …? Или они ошибаются, проблема в чем-то другом?
3. Кстати, что именно такое олицетворение? Какой пользователь олицетворяется? И как бы это помогло в любом случае? Я администратор сайта, и даже я не могу загружать изображения, так за кого же нужно выдавать себя, чтобы это сработало? Или я неправильно понимаю, что это такое полностью?