我遇到一个问题,当从 SQL Server 流式传输办公文档时,即使用户已通过浏览器中的基本身份验证进行了身份验证,身份验证对话框仍会提示输入凭据。单击身份验证对话框中的取消仍可让文档正常打开。
目标是防止显示身份验证对话框。Web 服务器位于我们的 DMZ 中,而 SQL Server 框位于组织内部。在我们的开发环境中的 Active Directory 中,我能够将 Web 服务器委派更改为 kerberos(将此计算机信任给任何服务器),然后身份验证对话框就会消失。我担心从安全角度来看这是否是正确的方法。什么是防止身份验证对话框的正确且最安全的方法,无论采用哪种方法,都需要与我们的运营团队进行论证。
这是目前正在应用的响应头和代码(在 C# 中),潜在的办公文档可能有我尚未正确配置的额外要求。
byte[] b = rda.Attachment;
Response.ClearContent();
Response.ClearHeaders();
Response.AppendHeader("Content-Disposition", "filename=" + rda.UploadedFilename);
Response.ContentType = mime;
Response.BinaryWrite(b);
Response.End();
return File(b, mime);
任何想法都会有帮助。