是的,请耐心等待我,我会尽力解释一下。
我有一个在Windows(Active Directory,NTLM)身份验证下运行的Web应用程序。在此应用程序中,我有一个HTML <video>
元素指向服务器上的.mp4文件。
我访问该应用程序,并提示(通过浏览器)输入凭据。我这样做了,我可以访问该应用程序,并播放视频。
在桌面(Chrome等)上工作正常,但当我在iPad(iOS 8+)上的Safari中启动时,我会在加载视频时获得辅助凭据提示(以及另一个提示对于每个后续呈现的视频)。如果我在此输入正确的凭据,视频播放,没问题。如果我取消提示,则视频无法播放。如果我离开页面并返回视频,我会再次收到提示输入凭据。
查看服务器日志(IIS 7.5),我看到来自Safari的每个资源有3个请求,前2个返回为401.2,最后一个返回为200(或.mp4为206)。
我无法理解的是.mp4请求再次提示输入凭据,但所有其他资源都按预期工作。我怀疑其他媒体类型也会导致这种行为,但我还没能把它们钉死。
我已经在这里和那里阅读了评论Safari沙盒其媒体,并且由于身份验证没有传递给它,它需要再次建立身份验证。虽然这种感觉就像发生了什么,但我想提供一些适当的文件来指出是否是这种情况。
否则,有人知道如何在用户身份验证后阻止后续身份验证提示,特别是在呈现媒体(mp4)时?
答案 0 :(得分:0)
似乎我找到了一个解决方案,至少在android中禁止身份验证弹出窗口。要检查这是否适用于safari,请尝试将以下内容包含在IIS中托管的目标站点的web.config文件中。我遇到了同样的问题,我试图在Android设备(v.6.1)上从Chrome(SharePoint)网站上播放mp4文件。
<browserCaps>
<result type="System.Web.Mobile.MobileCapabilities, System.Web.Mobile, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<filter>isMobileDevice=false</filter>
</browserCaps>
您可能还需要禁用Windows身份验证并启用匿名身份验证才能生效。这只是一种解决方法,不能成为理想的解决方案,因为如果我登录该网站,我就无法播放该视频。但是,如果我试图匿名访问该网站并使用HTML5视频标签播放mp4,它可以正常工作。可能是Windows身份验证正在搞乱移动设备上的视频播放。