Открытие файла Excel в IE вызывает три входа в систему? - PullRequest
5 голосов
/ 21 февраля 2011

У меня есть классический веб-сайт ASP, который отправляет форму на страницу, которая затем генерирует и передает файл Excel пользователям. На самом деле, это необработанная таблица HTML, которую я отправляю:

Response.AddHeader "Content-Disposition", "inline; filename=file.xls"
Response.AddHeader "Content-Type", "application/vnd.ms-excel"

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

Теперь, когда пользователь отправляет форму, это действие приводит к еще двум диалогам входа в систему. Вы можете отменить оба и все еще открыть файл. На самом деле, если вы введете свои учетные данные, вам потребуется ввести их четыре раза! Если вы отметите «Запомнить пароль», это не повлияет на необходимость входа в систему. Кроме того, это происходит, даже если URL-адреса перечислены в разделе «Надежные сайты» IE.

Любые идеи о том, что я могу сделать, чтобы минимизировать это?

PS: Не уверен, но, похоже, это относительно недавняя проблема, то есть более поздняя версия IE (7/8), Office (2007+) и или Windows (Vista / 7).

ОБНОВЛЕНИЕ: Используя Fiddler, я вижу, что что-то под названием «User-Agent: Microsoft-WebDAV-MiniRedir / 6.1.7600» пытается подключиться и получает 401.2. IE выгружает загрузку во что-то еще, что не проходит аутентификацию должным образом?

ОБНОВЛЕНИЕ 2: Вдвойне интересно, Firefox не делает ничего из этого. Он получает и интерпретирует вещи правильно:

HTTP/1.1 200 OK
Date: Mon, 21 Feb 2011 19:25:26 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Disposition: inline; filename="SavingsReport_4Q2010.xls"
Content-Type: application/vnd.ms-excel
Content-Length: 111851
Cache-control: private

1 Ответ

3 голосов
/ 20 января 2014

Старый вопрос, но он возникает в том случае, если кто-то еще наткнулся на него.

Office пытается аутентифицироваться на файловом сервере с помощью запроса OPTIONS, чтобы получить доступ к файлу, как описано в этой статье .

Без полного понимания того, почему изменение расположения контента с inline на attachment не будет запрашивать аутентификацию в большинстве сред.

Будьте осторожны, так как это может показатьсявлияние на имя файла (в win XP - IE7. Например, файл с именем file name.xls будет открыт как file_name.xls

Вот пример классического кода ASP:

Response.AddHeader "Content-Disposition", "attachment; filename=MyReport.xls"
...