在IE中打开Excel文件会引发三个登录?

alp*_*ogg 5 authentication excel internet-explorer login asp-classic

我有一个经典的ASP网站,该网站将表单发布到页面上,然后生成一个Excel文件并将其流式传输给用户。实际上,它是我发送的原始HTML表:

Response.AddHeader "Content-Disposition", "inline; filename=file.xls"
Response.AddHeader "Content-Type", "application/vnd.ms-excel"
Run Code Online (Sandbox Code Playgroud)

Intranet网站通过集成的Windows身份验证进行保护。没有检查其他访问模式。用户使用其网络密码登录,一切正常。

现在,当用户提交表单时,此操作将导致另外两个登录对话框。实际上,您可以取消两者并仍然打开文件。实际上,如果您输入凭据,则需要输入四次!如果选中“记住密码”,则不会影响登录的需要。此外,即使URL在IE的“受信任的站点”部分中列出,也会发生。

关于如何最大程度地减少这种情况的任何想法?

PS:不确定,但似乎是一个相对较新的问题,表示IE(7/8),Office(2007+)和或Windows(Vista / 7)的更新版本。

更新:使用Fiddler,我可以看到名为“ User-Agent:Microsoft-WebDAV-MiniRedir / 6.1.7600”的内容正在尝试连接,并获得401.2版本。IE是否将下载内容卸载到其他未正确验证的内容上?

UPDATE2:令人感兴趣的是,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
Run Code Online (Sandbox Code Playgroud)

Per*_*ert 3

老问题,但以防万一其他人偶然发现它。

Office 尝试通过 OPTIONS 请求对文件服务器进行身份验证,以便按照本文所述访问文件

在不完全理解原因的情况下,将内容处置从 更改inlineattachment不会在大多数环境中提示进行身份验证。

请小心,因为这似乎会影响文件的名称(在 win XP - IE7 上。例如,具有名称的文件file name.xls将打开为file_name.xls

下面是经典 ASP 代码示例:

Response.AddHeader "Content-Disposition", "attachment; filename=MyReport.xls"
Run Code Online (Sandbox Code Playgroud)