У меня есть классический веб-сайт 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