Проблема безопасности TransmitFile в IE и Word - PullRequest
0 голосов
/ 09 ноября 2011

Я пытаюсь передать файл (текстовый документ) с моего сервера на клиент.

Я использую это:

Response.TransmitFile(path);
Response.End();

В IE, когда я нажимаю на кнопку Открыть иззагрузите всплывающее окно, все в порядке, и слово открыто с моим документом.

Проблема в том, что когда я нажимаю кнопку сохранения в слове, появляется всплывающее окно безопасности / подключения.Я должен дать имя пользователя / пароль для mysite.com

1 Ответ

2 голосов
/ 12 ноября 2011

Это нормальное поведение, поскольку Word по-разному обрабатывает файлы, открытые через браузер - он пытается проверить, являются ли они «доступными для WebDAV», и использует для этого некоторые специфичные для MS расширения ... которые, в свою очередь, не используют ваш текущий сеанс браузера, но пытается / должен установить новый, что, в свою очередь, приводит к тому, что Word запрашивает учетные данные.

Если вы хотите просто загрузить его локально, вы можете использовать заголовок content-disposition - таким образом Word видит его как локальный файл и пытается сохранить его локально после «нажатия кнопки сохранения Word».

Если вы действительно хотите, чтобы он был сохранен на вашем сайте, он становится немного сложным ... хотя, работая на IIS, вы сможете реализовать что-то в сочетании со встроенной в IIS функцией WebDAV. .

РЕДАКТИРОВАТЬ - согласно комментариям:

Как использовать content-disposition http заголовок, см., Например, http://www.jtricks.com/bits/content_disposition.html

...