Проблема безопасности TransmitFile в IE и Word
Я пытаюсь передать файл (текстовый документ) с моего сервера на клиент
Я использую это:
Response.TransmitFile(path);
Response.End();
В IE, когда я открываю всплывающее окно загрузки, все в порядке, и слово открывается с моим документом.
Проблема в том, что когда я нажимаю кнопку "Сохранить" в word, появляется всплывающее окно безопасности / подключения. Я должен дать имя пользователя / пароль для mysite.com
1 ответ
Это нормальное поведение, поскольку Word по-разному обрабатывает файлы, открытые через браузер - он пытается проверить, являются ли они "доступными для WebDAV", и использует для этого некоторые специфичные для MS расширения... которые, в свою очередь, не используют текущий сеанс браузера, но пытается / должен установить новый, что в свою очередь приводит к тому, что Word запрашивает у вас учетные данные.
Если вы хотите просто скачать его локально, вы можете с помощью content-disposition
заголовок - таким образом Word видит его как локальный файл и пытается сохранить его локально после "нажатия кнопки сохранения Word".
Если вы действительно хотите, чтобы он был сохранен на вашем сайте, он становится немного сложным... хотя, поскольку вы работаете на IIS, вы можете реализовать что-то в сочетании со встроенной в IIS функциональностью WebDAV...
РЕДАКТИРОВАТЬ - согласно комментариям:
Как использовать content-disposition
Заголовок http см., например, http://www.jtricks.com/bits/content_disposition.html