在IE中打开Excel文件引发三次login?

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

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

Intranet网站通过集成的Windows身份validation进行保护。 没有其他访问模式被检查。 用户使用他们的networking密码login,一切正常。

现在,当用户提交表单时,这个动作会导致另外两个login对话框。 你实际上可以从两者中取消并仍然打开文件。 事实上,如果你把你的凭据,它需要你input他们四次! 如果选中“记住密码”,则不会影响login的需要。即使在IE的“受信任的站点”部分列出了URL,也会发生这种情况。

任何想法,我可以做些什么来最小化这个?

PS:不知道,但似乎是一个相对较新的问题,意味着更新版本的IE(7/8),Office(2007+)和Windows(Vista / 7)。

更新:使用Fiddler,我可以看到一个名为“User-Agent:Microsoft-WebDAV-MiniRedir / 6.1.7600”的尝试连接,并得到401.2'ed。 是IE卸载下载到其他不正确的身份validation?

UPDATE2:有趣的是,Firefox没有这个function。 它正确地接收和解释事物:

 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 

老问题,但在这里,以防其他人绊倒它。

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

如果不完全明白为什么,将内容处置从inline更改为attachment将不会在大多数环境中提示进行身份validation。

小心,因为这似乎对文件的名称有影响(在赢得XP – IE7。例如文件名称file name.xls将被打开为file_name.xls

这里是典型的ASP代码示例:

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