Установка разрешений для загружаемого файла, чтобы разрешить чтение в ASP.NET - PullRequest
1 голос
/ 19 апреля 2011

У меня есть веб-приложение ASP.NET, в котором я пытаюсь открыть текстовый файл, расположенный в подкаталоге моего webroot.Текстовый файл был загружен через то же веб-приложение с помощью SAFileUp.Я использую объект FileInfo как таковой для чтения текстового файла ...

Response.TransmitFile(fileInfo.FullName)

Загадочная вещь - я получаю исключение при выполнении этой строки кода.

Access to the path 'C:\webroot\xxxx\uploads\filename.txt' is denied 

Я дал папку uploads, куда был загружен текстовый файл, разрешения read/write/execute для учетной записи IUSR и IIS_IUSRS, а разрешения унаследованы для подпапок ниже.Интересно, что сам текстовый документ, который я пытаюсь загрузить, НЕ имеет разрешений, установленных для IIS_IUSRS, в то время как IUSR имеет права на чтение / запись / выполнение.Как только я добавляю «чтение» к IIS_IUSRS, я могу читать файл.

Меня смущает то, что я подумал, что файл унаследовал бы разрешения от родительских папок, но, по-видимомуне.Как мне установить права доступа для загруженного файла во время процесса загрузки, чтобы я мог открыть его позже для чтения?

1 Ответ

1 голос
/ 19 апреля 2011

Хорошо .. Я нашел ответ. По сути, компонент загрузки SAFileUp использует каталог «Temp», в котором загруженный файл кэшируется, чтобы установить разрешения для загружаемого файла. В моем случае этот каталог был C:\Windows\temp. Все, что я сделал, это предоставил учетной записи IIS_IUSRS READ доступ к каталогу C:\Windows\temp, и я смог получить доступ к загруженному файлу без проблем.

Вот статья на веб-сайте SoftArtisans, которая дала мне понять и помогла найти каталог, в который был загружен загруженный файл.

http://support.softartisans.com/kbview_776.aspx

...